javascript动画效果之多物体透明度
2016-11-03 09:40
381 查看
html和css 仅为布局,需要注意的是filter对应的是老版本的ie浏览器透明度,而opacity对应的其他浏览器的透明度
filter: alpha(opacity: 50); opacity: 0.5;
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> * { margin: 0; padding: 0; font-size: 12px; } div { margin: 10px; height: 360px; width: 200px; } ul { list-style: none; } ul li { width: 200px; height: 100px; background: blue; margin-bottom: 20px; cursor: pointer; filter: alpha(opacity: 50); opacity: 0.5; } </style> </head> <body> <div> <ul id="squLi"> <li></li> <li></li> <li></li> </ul> </div> </body> </html>
js部分也是通过for循环来给每个li标签都加入一个鼠标触发事件
1 <script type="text/javascript"> 2 function $(id) { 3 return typeof id === "string" ? document.getElementById(id) : id; 4 } 5 window.onload = function() { 6 //自定义变量为li标签的集合 7 var aLi = $("squLi").getElementsByTagName("li"); 8 9 //通过for循环给每个li都添加一个触发效果 10 for (var i = 0; i < aLi.length; i++) { 11 //每个li都需要一个单独的定时器,避免冲突 12 aLi[i].timer = null; 13 //设置每一个li初始的透明度为50,避免冲突 14 aLi[i].alpha = 50; 15 //绑定事件 16 aLi[i].onmouseenter = function() { 17 //调用自定义函数,并传参(需要达到的透明度为100) 18 squartLi(this, 100); 19 } 20 //绑定事件 21 aLi[i].onmouseleave = function() { 22 //调用同一个自定义函数,传参(离开时透明度为50) 23 squartLi(this, 50); 24 } 25 } 26 27 //自定义函数,自定义参数obj和onAlpha 28 function squartLi(obj, onAlpha) { 29 //一个li同一时间只需要一个定时器,所以事件触发时,要清除已经触发的定时器 30 clearInterval(obj.timer); 31 //定时器 32 obj.timer = setInterval(function() { 33 //鼠标进入obj.alpha为50,onAlpha为100,所以+10 34 if (obj.alpha < onAlpha) { 35 obj.alpha += 10; 36 } else { 37 //离开时,obj.alpha为100,onAlpha为50,所以-10 38 obj.alpha -= 10; 39 } 40 if (obj.alpha == onAlpha) { 41 //当为50或者100则达到要求,清除定时器 42 clearInterval(obj.timer); 43 } else { 44 //老版本ie 45 obj.style.filter = 'alpha(opacity: ' + obj.alpha + ');' 46 //其他浏览器 47 obj.style.opacity = obj.alpha / 100; 48 } 49 50 }, 30); 51 } 52 53 } 54 </script>
相关文章推荐
- JavaScript动画效果 opacity 透明度变化
- javascript动画效果之透明度
- javascript动画效果之多物体缓冲运动
- JS动画效果(移动、透明度、缓冲、多物体)
- javascript动画效果之透明度(修改版)
- 用JavaScript实现动画效果的方法
- JavaScript_窗口移动动画效果示例;
- Javascript 实现DIV透明度渐变、移动放大等效果
- JavaScript实现页面遮盖层(带动画效果)
- 用javascript实现动画效果
- JavaScript Tween 动画效果
- 令人印象深刻的使用独特javascript动画效果的网站
- 用javascript实现以个动画效果(可以上下左右的移动)
- javascript动画效果打开/关闭层
- 使用javascript开发超棒的动画文字书写效果
- HTML中如何使用JavaScript实现DOM的动画效果
- Javascript 拼图游戏,可以自定义图片拼图,可以设置无限关卡,拼图成功后含动画效果
- javascript流畅动画效果,包括颜色,style属性,dom元素属性一步搞定
- 用JavaScript实现动画效果
- 利用CSS和javascript实现Google首页的动画效果