javascript淡入淡出效果的实现思路

 更新时间:2012年03月31日 01:55:52   作者:  
这个思路是最近写XScroll.js类的时候想明白的。平常我们说的淡入淡出效果,一般分成两部分,一半是淡入,另一半就是淡出了。不过经过分析,我觉得其实只需要一半就行了
如题,只有思路,没有代码。

这个思路是最近写XScroll.js类的时候想明白的。平常我们说的淡入淡出效果,一般分成两部分,一半是淡入,另一半就是淡出了。不过经过分析,我觉得其实只需要一半就行了。

比如写一个图片切换类,切换效果是淡入淡出,通常我们会这样写:当切换发生的时候,当前显示的图片淡出(渐渐隐藏),将要显示的图片淡入(渐渐出现),通常两张图片的动画速度是一致的,以便实现当前图片完全隐藏之时就是下一张图片完全显示之日。

我们来列一个简单的步骤:

当前图片渐隐,透明度由100%变成90%;同时下一张图片渐显,透明度由0变成10.
当前图透明度80%,下张图透明度20%
当前图70%,下张图30%。
。。。。
当前图10%,下张图90%
完成切换
其实,这样做完全是一种浪费!

我们想一想,如果下张图zIndex位于当前图之上,当它渐显的时候,因为越来越不透明,所以视觉上,他下层的当前图片看起来就越来越透明!

比如,下张图透明度为20%的时候,因为他覆盖在当前图上,所以当前图片看起来透明度就是100%-20%=80%!

所以,在制作淡入淡出切换效果的时候,其实只需要淡入效果即可,淡入的同时,淡出就发生着;淡入结束时,就是淡出终结。这样一来,永远不用担心淡入与淡出不同步的问题。

关键是,这样一来只用同时循环设置一张图片的透明度(即下张图),不用管被挡住的这张(即当前图),节约了一半的运算。这也算是优化了javascript的执行效率吧?

所以,我实现淡入淡出切换效果的思路就是:

将下一张图片的zIndex设置于当前图片之上
下一张图片进行淡入(渐显)循环;当前图片不操作。
淡入进行时,淡出同步发生;淡入完成,淡出同时完成。
注:此思路只适合于当前图与下一张图重叠的情况(大部分时候都是这样)。

相关文章

  • 使用JavaScript和MQTT开发物联网应用示例解析

    使用JavaScript和MQTT开发物联网应用示例解析

    这篇文章主要介绍了使用JavaScript和MQTT开发物联网应用示例解析,文章通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 详解JS数组Reduce()方法详解及高级技巧

    详解JS数组Reduce()方法详解及高级技巧

    reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素。接下来通过本文给大家分享JS数组Reduce()方法详解及高级技巧,一起看看吧
    2017-08-08
  • 用POSTMAN发送JSON格式的POST请求示例

    用POSTMAN发送JSON格式的POST请求示例

    这篇文章主要介绍了用POSTMAN发送JSON格式的POST请求示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • JS 设计模式之:工厂模式定义与实现方法浅析

    JS 设计模式之:工厂模式定义与实现方法浅析

    这篇文章主要介绍了JS 设计模式之:工厂模式,结合实例形式分析了JS 工厂模式基本概念、原理、定义、实现方法与操作注意事项,需要的朋友可以参考下
    2020-05-05
  • javascript中onmouse事件在div中失效问题的解决方法

    javascript中onmouse事件在div中失效问题的解决方法

    我们预期只有当鼠标从div中移开的时候才会触发onmouseout事件,可事实上,当我们移到div中的元素时,例如:本例中的a标签时,就会触发 onmousout事件
    2012-01-01
  • JS实现颜色的10进制转化成rgba格式的方法

    JS实现颜色的10进制转化成rgba格式的方法

    这篇文章主要介绍了JS实现颜色的10进制转化成rgba格式的方法,涉及javascript针对颜色数值转换的相关运算操作技巧,需要的朋友可以参考下
    2017-09-09
  • JavaScript限定复选框的选择个数示例代码

    JavaScript限定复选框的选择个数示例代码

    有10个复选框,用户最多只能勾选3个,否则就灰掉所有复选框,具体实现思路及代码如下,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • BootStrapTable服务器分页实例解析

    BootStrapTable服务器分页实例解析

    项目中经常会使用到表格,数据量大的时候还需要进行分页,项目设计阶段,我选择了bootstrapTable的js插件,个人觉得这个框架非常好用,支持服务器端分页,此篇主要写的主要是关于服务器分页,需要的朋友可以参考下
    2016-12-12
  • javascript获取url上某个参数的方法

    javascript获取url上某个参数的方法

    获取url上的某个参数的方法有很多,在本文为大家介绍下使用javascript是如何实现的,感兴趣的朋友不要错过
    2013-11-11
  • Uniapp中嵌入H5并在H5中跳转到APP的指定页面方法详解

    Uniapp中嵌入H5并在H5中跳转到APP的指定页面方法详解

    Uniapp是一款基于Vue.js框架的跨平台开发工具,支持在一套代码中开发出运行于各大平台的应用程序,这篇文章主要给大家介绍了关于Uniapp中嵌入H5并在H5中跳转到APP的指定页面的相关资料,需要的朋友可以参考下
    2023-09-09

最新评论