视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
javascript原生封装一个淡入淡出效果的函数测试实例代码
2020-11-27 19:44:37 责编:小采
文档
 这篇文章主要介绍了javascript原生封装一个淡入淡出效果的函数,主要有FadeIn淡入函数和FadeOut淡出函数,需要的朋友可以参考下

说到js的渐变显示与消失,多数朋友会想到JQuery里面的fadeIn()、fadeOut()或fadeToggle()。但如果仅仅是为了引入这样的一个效果,而去调用了庞大JQuery库?或者说我通过用原生js实现一些函数来提高自己~

所以,我简单的研究了一下纯js代码写淡入淡出的效果。

如果出现错误,请在评论中指出,我也好自己纠正自己的错误

(一)FadeIn淡入函数

淡入淡出的效果,其实就是一个setInterval(),加上循环的DOM操作,通过改变element对象节点的透明度,即可实现这种效果。

所以我们提取出两个必要的东西:setInterval()、opacity、以及speed。

  • speed : 这个是我们设置opacity的值从0到1的float数值变化速度

  • 淡入的逻辑:opacity的值从0到1的float数值变化。

  • 我们来先看代码实现!

    html:

    <p id="p1"></p>
    <span id="span1">123</span>
    <button>fadein</button>
    <button>fadeOut</button>

    css样式

    <style>
     p {
     width: 100px;
     height: 100px;
     background-color: #1d7db1;
     opacity:0;
     }
     </style>

    首先我们来看fadeIn函数的第一版的写法:先了解一下实现的思路

    当这个效果暂时实现以后,有些东西并没有那么简单。如果发生多次的触发效果,会出现setInterval被多次同时使用,出现一些让人头疼的BUG。

    要解决这个问题,目前有一个方案:添加一个全局状态,防止多次触发setInterval。

    兼容性问题!!!

    先看代码

    注:代码设置num/100是因为我们以ie为标准去兼容ff和GG

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

    ie的filter范围是0~100

    opacity=value/100(兼容FF和GG)。

    FF和GG的opacity是0~1 (为了兼容ie的filter范围,我们用num/100)

    (二)FadeOut淡出函数

    speed : 这个是我们设置opacity的值从1到0的float数值变化速度(记得考虑兼容性)

    淡出的逻辑:opacity的值从1到0的float数值变化。

    封装函数

    测试实例:

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    JavaScript 五大常见函数

    Angular学习笔记之集成三方UI框架、控件的示例

    Node.js实现注册邮箱激活功能的方法示例

    下载本文
    显示全文
    专题