青岛星网跟大家分享一个:纯Javascript淡入淡出封装函数,给单纯想使用淡入淡出效果而不想加载JQ的朋友用。淡入淡出的效果,其实就是一个setInterval(),加上循环的DOM操作,通过改变element对象节点的透明度,即可实现这种效果。
从分析,提取出两个必要的东西:setInterval()、opacity。
淡入的逻辑:opacity的值从0到1的float数值变化。
淡出的逻辑:opacity的值从1到0的float数值变化。
var Fadeflag = true; function Fade() { /** * 淡入效果 * @param {Object} obj */ this.show = function(obj) { var num = 0; if (Fadeflag) { var st = setInterval(function(){ num++; Fadeflag = false; obj.style.opacity = num/10; if (num>=10) { clearInterval(st); Fadeflag = true; } },30); } } /** * 淡出效果 * @param {Object} obj */ this.hide = function(obj) { var num = 10; if (Fadeflag) { var st = setInterval(function(){ num--; Fadeflag = false; obj.style.opacity = num/10; if (num<=0) { clearInterval(st); Fadeflag = true; } },30); } } }
//导入上面的代码放在前面 var fade = new Fade(); fade.show(obj); //淡入 fade.hide(obj); //淡出