CSS相关透明度的设置方式

  1. filter:alpha(opacity=50);
  2. opacity: 0.5;

opacity: 0.5 This is the “most important” one because it is the current standard in CSS. This will work in most versions of Firefox, Safari, and Opera. This would be all you need if all browsers supported current standards. Which, of course, they don’t. 
filter: alpha(opacity=50) This one you need for IE.

js实现fadeOut, fadeIn, fadeTo

  • 参考网址 http://mrthink.net/js-fadeIn-fadeOut-fadeTo/
  • 思路:主要的思路就是通过setTimeout函数来设置实时操作,通过每隔一段时间来减小/增加相关元素的透明度从而实现其淡入与淡出的效果
  • 代码如下:
  • function setOpacity(elem, opacity) {/** elem : The id of the element; * opacity: The value of alpha, which is a decimals.*/if(elem.style.filter) {   //IEelem.style.filter = 'alpha(opacity:' + opacity * 100 + ')';} else {elem.style.opacity = opacity;    }
    }
    /*
    function getOpacity(elem) {return (elem.style.filter ? elem.style.filter)
    }*/
    function fadeIn(elem, speed) {/* * elem, the id of the element;* speed, the speed for the fadeIn.(The value lower, the less time needs)* opacity, the target opacity will be reach, 0.0 to 1.0*/elem.style.display = "block";setOpacity(elem, 0);var tempOpacity = 0;(function(){setOpacity(elem, tempOpacity);tempOpacity += 0.05;if(tempOpacity <= 1) {setTimeout(arguments.callee, speed);//tempOpacity += 0.05;
             }})();
    }function fadeOut(elem, speed) {/* * elem, the id of the element;* speed, the speed for the fadeout;speed, the speed for the fadein.(The value lower, the less time needs);*/elem.style.display="block";var tempOpacity = 1;(function(){setOpacity(elem, tempOpacity);tempOpacity -= 0.05;if(tempOpacity > 0) {setTimeout(arguments.callee, speed);console.log("why");} else {elem.style.display = "none"; //不可放在匿名函数外面会先执行。
             }})();//elem.style.display = "none";
    }function fadeTo(elem, speed, opacity){/* elem, the id of the element;* speed, the speed to of the fadeTo.(The value lower, the less time needs)* opacity, the opacity of the final result;*/var tempOpacity = 0;elem.style.display = "block";(function(){setOpacity(elem, tempOpacity);tempOpacity += 0.05;if(tempOpacity <= opacity) {setTimeout(arguments.callee, speed);}})();
    }

  • 这里需要有一个值得注意的,就是在设置定时修改透明度时,这里利用了JS的闭包性质。以图中fadeOut代码为例说明,在这个代码的运行过程中,在fadeOut函数中定义了一个内部的匿名函数来实现定时减小透明度,在匿名函数内部,使用setTimeout来定时的调用匿名函数(arguments.callee,注意这里的arguments的作用域是匿名函数,不是fadeOut),这个方法看似递归调用了匿名函数,但是实际上解析器并不是这样处理的。当fadeOut函数触发时,运行的过程是:fadeOut函数入栈执行--->匿名函数入栈执行--->匿名函数出栈--->fadeOut函数出栈--->设置的时间到了,匿名函数入栈--->匿名函数出栈--->设置的时间到,匿名函数入栈……;从效率上来看,这样的过程是更好的,因为减小的函数栈的压力;同时也可以看到JS闭包的性质了,因为虽然定义tempOpacity的函数fadeOut出栈了,但是后来的匿名还是可以访问到这个变量。这主要是因为虽然fadeOut函数返回了,其执行环境的作用域链被销毁了, 但是其活动对象(由每个函数的arguments和其他命名参数来初始化得到的)仍然会留在内在中,因为匿名函数中有引用到这个对象(js的内存管理是使用垃圾回收机制的),所以匿名函数也就可以使用这个对象里面的变量了,只有当匿名函数被销毁时,其活动对象才会被销毁。

转载于:https://www.cnblogs.com/kinthon/p/4864960.html

纯JS实现fadeIn 和fadeOut相关推荐

  1. 原生js实现fadein 和 fadeout淡入淡出效果

    用法: $("button").click(function(){ $("p").fadeOut(); }); fadeOut() 方法逐渐改变被选元素的不透明 ...

  2. 原生js实现fadein 和 fadeout

    js里面设置DOM节点透明度的函数属性:filter= "alpha(opacity=" + value+ ")"(兼容ie)和opacity=value/10 ...

  3. php 右下脚弹窗,纯js的右下角弹窗实例代码

    下面小编就为大家带来一篇纯js的右下角弹窗实例代码.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 这个弹窗是如下图的效果: 打开网页的时候,这个弹窗会淡入,之后点击右上 ...

  4. 【jQuery】纯js的右下角弹窗

    这个弹窗是如下图的效果: 打开网页的时候,这个弹窗会淡入,之后点击右上角的关闭按钮,其实就是一个& times;会淡出. 采用淡入淡出是因为直接Jquery一个fadeIn与fadeOut省事 ...

  5. fadein和fadeto_jQuery fadeIn,fadeOut,fadeTo

    fadein和fadeto jQuery provides an easy way to implement transparency effect in HTML through fadeIn(), ...

  6. fadeIn()与fadeOut()方法

    show()和hide()方法与fadeIn()和fadeOut()方法相比较,相同之处是都是切换元素的显示状态,不同之处在于,前者的动画效果使用元素的width与height属性都发生了变化,而后者 ...

  7. http://www.dewen.net.cn/q/16042/jquery fadeIn和fadeOut问题

    http://www.dewen.net.cn/q/16042/jquery fadeIn和fadeOut问题 Zhen 2 票 Zhen 29 <script type="text/ ...

  8. jQuery之动画系列(show、hide、fadeIn、fadeOut、fadeToggle、fadeTo、slideDown、slideUp、slideToggle)

    文章目录 show 和 hide fadeIn 和 fadeOut fadeToggle fadeTo slideDown 和 slideUp slideToggle show 和 hide < ...

  9. jq动画函数:show()、hide()、toggle()、slideDown()、slideUp()、slideToggle()、fadeIn ()、fadeOut ()、fadeToggle ()

    jq动画分为:基本动画和综合动画: 基本动画的作用都是显示隐藏: 综合动画是将自定义的属性放进去设置: 基本动画分为: show().hide().toggle():相对于左上角显示隐藏: slide ...

最新文章

  1. HTTP和RPC的优缺点
  2. 粉丝提问:求问大神您会查exif吗?
  3. CentOS 7.6 RPM方式安装Oracle19c的过程
  4. TODO maven学习笔记
  5. 基于AI的网易UI自动化测试方案与实践
  6. pcl1.8.1在VS2017中编译遇到pop_t找不到标识符的问题的解决办法
  7. 42、最大子序和(python)
  8. iOS面试与核心基础之启动优化
  9. 给pdf添加导航目录
  10. Ubuntu零基础教学-Ubuntu下如何创建.txt记事本文件
  11. 麦克劳林公式求sin
  12. python大数加法、需要ut_对于密钥大小,Python加密数据太长
  13. 中西文化交流互融:500年老字号隆庆祥“奏响”2022年
  14. arduino笔记20:红外遥控
  15. 你的电脑被黑客黑过吗?
  16. selenium 成功绕过淘宝登录反爬机制
  17. 无痕埋点在Android中的实现
  18. Python番外篇:教你如何编写一个GIF录屏工具
  19. 青大计算机学院保研,学在青大丨青大最强的榜样在这里(电子信息学院篇)
  20. 重大通知!北京2020软考取消!合并到下一年度!

热门文章

  1. 详解多分类模型的Macro-F1/Precision/Recall计算过程
  2. 如何在Mac上使用活动监视器
  3. 微博项目---项目介绍
  4. 分布式NewSQL数据库实践——民生银行经典案例
  5. 今天,你刷牙“出血”了吗?
  6. html页面中文显示乱码问题解决方法
  7. PAT日志 1053
  8. 1053 住房空置率
  9. [一个无框架的javaweb demo]番荒之冢 --番剧灯塔站
  10. 我的世界手机有php的开服器下载地址,我的世界开服器下载-我的世界开服务器软件安卓手机版 2.1.4 - 极光下载站...