js如何实现淡入淡出效果

 更新时间:2015年11月8日 20:27  点击:1727

淡入淡出效果,在日常项目中经常用到,可惜原生JS没有类似的方法,而有时小的页面并不值得引入一个jQuery库,所以就自己写了一个,已封装,有用得着的朋友,可以直接使用。代码中另附有一个设置元素透明度的方法, 是按IE规则(0~100)设置, 若改成标准设置方法(0.00~1.00),,下面使用时请考虑浮点精确表达差值。

参数说明:
fadeIn()与fadeOut()均有三个参数,第一个是事件, 必填;第二个是淡入淡出速度,正整数,大小自己权衡,可选参数;第三个, 是指定淡入淡出到的透明度值(类似于jQuery中的fadeTo()), 0~100的正整数值,也是可选参数。
关键代码:

 //淡入效果(含淡入到指定透明度)  function fadeIn(elem, speed, opacity){   /*    * 参数说明    * elem==>需要淡入的元素    * speed==>淡入速度,正整数(可选)    * opacity==>淡入到指定的透明度,0~100(可选)    */   speedspeed = speed || 20;   opacityopacity = opacity || 100;   //显示元素,并将元素值为0透明度(不可见)   elem.style.display = 'block';   iBase.SetOpacity(elem, 0);   //初始化透明度变化值为0   var val = 0;   //循环将透明值以5递增,即淡入效果   (function(){    iBase.SetOpacity(elem, val);    val += 5;    if (val <= opacity) {     setTimeout(arguments.callee, speed)    }   })();  }    //淡出效果(含淡出到指定透明度)  function fadeOut(elem, speed, opacity){   /*    * 参数说明    * elem==>需要淡入的元素    * speed==>淡入速度,正整数(可选)    * opacity==>淡入到指定的透明度,0~100(可选)    */   speedspeed = speed || 20;   opacityopacity = opacity || 0;   //初始化透明度变化值为0   var val = 100;   //循环将透明值以5递减,即淡出效果   (function(){    iBase.SetOpacity(elem, val);    val -= 5;    if (val >= opacity) {     setTimeout(arguments.callee, speed);    }else if (val < 0) {     //元素透明度为0后隐藏元素     elem.style.display = 'none';    }   })();  } 

效果图:

核心代码,大家可以直接复制代码查看效果

<!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=gb2312" /> <title>原生JS实现淡入淡出效果</title> <style> /*demo css*/ #demo div.box {float:left;width:31%;margin:0 1%} #demo div.box h2{margin-bottom:10px} #demo div.box h2 input{padding:5px 8px;font-size:14px;font-weight:bolder} #demo div.box div{text-indent:10px; line-height:22px;border:2px solid #555;padding:0.5em;overflow:hidden} </style> <script> window.onload = function(){  //底层共用  var iBase = {   Id: function(name){    return document.getElementById(name);   },   //设置元素透明度,透明度值按IE规则计,即0~100   SetOpacity: function(ev, v){    ev.filters ? ev.style.filter = 'alpha(opacity=' + v + ')' : ev.style.opacity = v / 100;   }  }  //淡入效果(含淡入到指定透明度)  function fadeIn(elem, speed, opacity){   /*    * 参数说明    * elem==>需要淡入的元素    * speed==>淡入速度,正整数(可选)    * opacity==>淡入到指定的透明度,0~100(可选)    */   speedspeed = speed || 20;   opacityopacity = opacity || 100;   //显示元素,并将元素值为0透明度(不可见)   elem.style.display = 'block';   iBase.SetOpacity(elem, 0);   //初始化透明度变化值为0   var val = 0;   //循环将透明值以5递增,即淡入效果   (function(){    iBase.SetOpacity(elem, val);    val += 5;    if (val <= opacity) {     setTimeout(arguments.callee, speed)    }   })();  }    //淡出效果(含淡出到指定透明度)  function fadeOut(elem, speed, opacity){   /*    * 参数说明    * elem==>需要淡入的元素    * speed==>淡入速度,正整数(可选)    * opacity==>淡入到指定的透明度,0~100(可选)    */   speedspeed = speed || 20;   opacityopacity = opacity || 0;   //初始化透明度变化值为0   var val = 100;   //循环将透明值以5递减,即淡出效果   (function(){    iBase.SetOpacity(elem, val);    val -= 5;    if (val >= opacity) {     setTimeout(arguments.callee, speed);    }else if (val < 0) {     //元素透明度为0后隐藏元素     elem.style.display = 'none';    }   })();  }      var btns = iBase.Id('demo').getElementsByTagName('input');    btns[0].onclick = function(){   fadeIn(iBase.Id('fadeIn'));  }  btns[1].onclick = function(){   fadeOut(iBase.Id('fadeOut'),40);  }  btns[2].onclick = function(){   fadeOut(iBase.Id('fadeTo'), 20, 10);  }   } </script> </head> <body>  <!--DEMO start--> <div id="demo">  <div class="box">   <h2><input type="button" value="点击淡入" /></h2>   <div id="fadeIn" style="display:none">    <p>脚本之家</p>   </div>   <p>脚本之家是国内专业的网站建设资源、脚本编程学习类网站,提供asp、php、asp.net、javascript、jquery、vbscript、dos批处理、网页制作、网络编程、网站建设等编程资料。</p>  </div>    <div class="box">   <h2><input type="button" value="点击淡出" /></h2>   <div id="fadeOut">     <p>脚本之家</p>   </div>   <p>脚本之家是国内专业的网站建设资源、脚本编程学习类网站,提供asp、php、asp.net、javascript、jquery、vbscript、dos批处理、网页制作、网络编程、网站建设等编程资料。</p>  </div>    <div class="box">   <h2><input type="button" value="点击淡出至指定透明度" /></h2>   <div id="fadeTo">     <p>脚本之家</p>   </div>   <p>脚本之家是国内专业的网站建设资源、脚本编程学习类网站,提供asp、php、asp.net、javascript、jquery、vbscript、dos批处理、网页制作、网络编程、网站建设等编程资料。</p>  </div> </div> <!--DEMO end-->  </body> </html> 

   以上就是原生js实现淡入淡出效果的全部代码,希望对大家的学习有所帮助。

[!--infotagslink--]

相关文章

  • Painter绘制红衣喝酒男水粉画效果教程

    今天小编在这里就来给Painter的这一款软件的使用者们来说一说绘制红衣喝酒男水粉画效果的教程,各位想知道具体绘制步骤的使用者,那么下面就快来跟着小编一起看一看教程...2016-09-14
  • php语言实现redis的客户端

    php语言实现redis的客户端与服务端有一些区别了因为前面介绍过服务端了这里我们来介绍客户端吧,希望文章对各位有帮助。 为了更好的了解redis协议,我们用php来实现...2016-11-25
  • photoshop用各种素材合成闪电侠效果制作教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说说利用各种素材合成闪电侠效果的制作教程,各位想知道具体制作步骤的使用者们,那么下面就快来跟着小编一起看...2016-09-14
  • jQuery+jRange实现滑动选取数值范围特效

    有时我们在页面上需要选择数值范围,如购物时选取价格区间,购买主机时自主选取CPU,内存大小配置等,使用直观的滑块条直接选取想要的数值大小即可,无需手动输入数值,操作简单又方便。HTML首先载入jQuery库文件以及jRange相关...2015-03-15
  • JS实现的简洁纵向滑动菜单(滑动门)效果

    本文实例讲述了JS实现的简洁纵向滑动菜单(滑动门)效果。分享给大家供大家参考,具体如下:这是一款纵向布局的CSS+JavaScript滑动门代码,相当简洁的手法来实现,如果对颜色不满意,你可以试着自己修改CSS代码,这个滑动门将每一...2015-10-21
  • 美图秀秀把普通照片快速转换成卡通效果教程

    今天小编在这里就来给美图秀秀的这一款软件的使用者们来说下把普通照片快速转换成卡通效果的教程,各位想知道具体制作步骤的使用者们,那么下面就快阿里跟着小编一起看一...2016-09-14
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • jQuery+slidereveal实现的面板滑动侧边展出效果

    我们借助一款jQuery插件:slidereveal.js,可以使用它控制面板左右侧滑出与隐藏等效果,项目地址:https://github.com/nnattawat/slideReveal。如何使用首先在页面中加载jquery库文件和slidereveal.js插件。复制代码 代码如...2015-03-15
  • photoshop调出时尚个性青色人像照片效果调色教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说说调出时尚个性青色人像照片效果的调色教程,各位想知道到底该怎么调色的,那么下面就快来跟着小编一起看一看...2016-09-14
  • PHP+jQuery翻板抽奖功能实现

    翻板抽奖的实现流程:前端页面提供6个方块,用数字1-6依次表示6个不同的方块,当抽奖者点击6个方块中的某一块时,方块翻转到背面,显示抽奖中奖信息。看似简单的一个操作过程,却包含着WEB技术的很多知识面,所以本文的读者应该熟...2015-10-21
  • SQLMAP结合Meterpreter实现注入渗透返回shell

    sqlmap 是一个自动SQL 射入工具。它是可胜任执行一个广泛的数据库管理系统后端指印, 检索遥远的DBMS 数据库等,下面我们来看一个学习例子。 自己搭建一个PHP+MYSQ...2016-11-25
  • PHP实现今天是星期几的几种写法

    复制代码 代码如下: // 第一种写法 $da = date("w"); if( $da == "1" ){ echo "今天是星期一"; }else if( $da == "2" ){ echo "今天是星期二"; }else if( $da == "3" ){ echo "今天是星期三"; }else if( $da == "4"...2013-10-04
  • ps怎么制作图片阴影效果

    ps软件是现在很多人比较喜欢的,有着非常不错的使用效果,这次文章就给大家介绍下ps怎么制作图片阴影效果,还不知道制作方法的赶紧来看看。 ps图片阴影效果怎么做方法/...2017-07-06
  • ps立体倒影效果制作方法

    ps软件是现在很多人比较喜欢使用的,有着非常不错的功能。这次文章就给大家介绍下ps立体倒影效果制作方法,还不知道怎么制作的赶紧来看看。 最终效果&#8195;&#8195;1...2017-07-06
  • 原生js实现fadein 和 fadeout淡入淡出效果

    js里面设置DOM节点透明度的函数属性:filter= "alpha(opacity=" + value+ ")"(兼容ie)和opacity=value/100(兼容FF和GG)。 先来看看设置透明度的兼容性代码: 复制代码 代码如下: function setOpacity(ele, opacity) { if (...2014-06-07
  • ps制作立体文字效果教程

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的制作效果。下面文章就给大家介绍下ps制作立体文字效果教程,感兴趣的一起来看看。 ps文字立体效果怎么做最终...2017-07-06
  • 利用Photoshop打造科幻片中的人物粒子化消失效果

    本文章分享一篇关于Photoshop打造科幻片中的人物粒子化消失效果,教程重点是画笔的应用,人物身上产生的碎块,颗粒等都是用自定或下载的笔刷来完成,制作之前最好先下载一些...2016-09-14
  • jQuery实现的文字hover颜色渐变效果实例

    这篇文章主要介绍了jQuery实现的文字hover颜色渐变效果,以完整实例形式分析了jQuery实现文字颜色渐变效果的相关技巧,涉及jQuery插件jquery-ui-1.8.16.custom.min.js的使用,需要的朋友可以参考下...2016-02-23
  • painter绘制水彩油画双重效果向日葵插画教程

    今天小编在这里给painter的这一款软件的使用者们带来的是绘制水彩油画双重效果向日葵插画的教程,各位想知道具体绘制方法的使用者,那么下面就快来跟着小编一起看一看吧...2016-09-14
  • Android中用HttpClient实现Http请求通信

    本文我们需要解决的问题是如何实现Http请求来实现通信,解决Android 2.3 版本以后无法使用Http请求问题,下面请看正文。 Android开发中使用HttpClient来开发Http程序...2016-09-20