js实现透明度渐变效果的方法


Posted in Javascript onApril 10, 2015

本文实例讲述了js实现透明度渐变效果的方法。分享给大家供大家参考。具体分析如下:

这里可实现一开始元素的透明度是30,鼠标移上的时候,透明度慢慢增加,到透明度100停止。鼠标移出,透明度慢慢减少,减少到30的效果。

要点一:因为无法直接获取和改变透明度的值,可以把透明度值赋给一个变量,让变量变化,最后把变量的值再赋给元素的透明值。

var alpha=30;

要点二:判断目标值和目前透明值,来判定是正向速度还是负向速度。

if(target > alpha){
speed = 2;
}else{
speed = -2;
}

要点三:如果透明值达到目标值,关掉定时器,否则透明值继续变化。最后把值赋给元素,因为透明度有兼容问题,所以要写上两个写法。

if(alpha == target){
clearInterval(timer);
}
else{
alpha = alpha + speed;
run.style.filter = 'alpha(opacity='+alpha+')';
run.style.opacity = alpha/100;
document.title = alpha;
}

最后,上代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>无标题文档</title>
<style>
body{margin:0; padding:0;}
#run{width:100px; height:100px; background:#06c;
position:absolute; border:1px solid #000;
opacity:0.3; filter:alpha(opacity=30);}
</style>
<script>
window.onload = function(){
 var run = document.getElementById("run");
 var btn = document.getElementById("btn");
 var speed = 1;
 var timer = null;
 var alpha=30;
 run.onmouseover = function(){
  startrun(100);
 }
 run.onmouseout = function(){
  startrun(30);
 }
 function startrun(target){
  clearInterval(timer);
  timer = setInterval(function(){
   if(target > alpha){
    speed = 2;
   }else{
    speed = -2;
   }
   if(alpha == target){
    clearInterval(timer);
   }
   else{
    alpha = alpha + speed;
    run.style.filter = 'alpha(opacity='+alpha+')';
    run.style.opacity = alpha/100;
    document.title = alpha;
   }
  },30)
 }
}
</script>
</head>
<body>
<div id="run"></div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript优先加载笔记代码
Sep 30 Javascript
Javascript 汉字字节判断
Aug 01 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
JS 去前后空格大全(IE9亲测)
Jul 15 Javascript
怎么判断js脚本加载完成
Feb 28 Javascript
基于Css3和JQuery实现打字机效果
Aug 11 Javascript
js性能优化技巧
Nov 29 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
Jun 08 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
Jun 14 Javascript
vue点击页面空白处实现保存功能
Nov 06 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
Nov 02 Javascript
js前端设计模式优化50%表单校验代码示例
Jun 21 Javascript
js实现同一页面多个运动效果的方法
Apr 10 #Javascript
js实现同一个页面多个渐变效果的方法
Apr 10 #Javascript
js实现缓冲运动效果的方法
Apr 10 #Javascript
js实现分享到随页面滚动而滑动效果的方法
Apr 10 #Javascript
js实现同一页面多个不同运动效果的方法
Apr 10 #Javascript
js实现类似jquery里animate动画效果的方法
Apr 10 #Javascript
js实现类似新浪微博首页内容渐显效果的方法
Apr 10 #Javascript
You might like
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
WordPress开发中用于标题显示的相关函数使用解析
2016/01/07 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
Python中针对函数处理的特殊方法
2014/03/06 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Python基于Tkinter实现的记事本实例
2015/06/17 Python
解决uWSGI的编码问题详解
2017/03/24 Python
Python生成器以及应用实例解析
2018/02/08 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
Python求解正态分布置信区间教程
2019/11/20 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
五种Python转义表示法
2020/11/27 Python
Python 实现集合Set的示例
2020/12/21 Python
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
营销与策划个人求职信
2013/09/22 职场文书
销售个人求职信范文
2014/04/28 职场文书
医院保洁服务方案
2014/06/11 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
文明礼貌主题班会
2015/08/14 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js