<!doctype html> <html> <head> <meta charset="utf-8"> <title>js透明度变化效果</title> <style> body{ margin: 0px; padding: 0px; } .redb{ width:200px; height: 200px; background: red; filter:alpha(opacity=30); opacity: 0.3; } </style> </head> <body> <p class="redb" id="opbtn"></p> <script> window.onload = function(){ var opp = document.getelementbyid(opbtn); opp.onmouseover = function(){ startmove(100); } opp.onmouseout = function(){ startmove(30); } } var timer = null; var alpha = 30; var speed = 0; function startmove(optarget){ clearinterval(timer); var opp = document.getelementbyid(opbtn); timer = setinterval(function(){ if(alpha<optarget){ speed = 10; } else if(alpha>optarget){ speed = -10; } if(alpha==optarget){ clearinterval(timer); } else{ alpha += speed; opp.style.opacity = alpha/100; opp.style.filter = 'alpha(opacity='+alpha+')'; } },100); } </script> </body> </html>
小结:
1、filter和opacity区别:w3c标准透明度就是opacity,filter只有ie才能用,其他浏览器都支持opacity
2、改变透明度时候,不能通过类似offsetleft的方法获取透明度值,因此需要单独创建变量
3、不要忘记将定时器赋值给timer
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
vue中watch使用方法总结
jquery做出循环时间自动更换样式功能
以上就是js实现透明度渐变功能的详细内容。
