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


Posted in Javascript onMarch 31, 2012

如题,只有思路,没有代码。

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

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

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

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

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

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

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

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

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

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

Javascript 相关文章推荐
setInterval与clearInterval的使用示例代码
Jan 28 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
Mar 02 Javascript
js倒计时抢购实例
Dec 20 Javascript
jQuery解决$符号命名冲突
Jun 18 Javascript
Javascript获取随机数的实现方法
Jun 22 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
Oct 10 Javascript
vue.js实现表格合并示例代码
Nov 30 Javascript
vue日期组件 支持vue1.0和2.0
Jan 09 Javascript
Node.js中 __dirname 的使用介绍
Jun 19 Javascript
VueJs 搭建Axios接口请求工具
Nov 20 Javascript
react项目如何使用iconfont的方法步骤
Mar 13 Javascript
vue-cli随机生成port源码的方法
Sep 02 Javascript
提高javascript效率 一次判断,而不要次次判断
Mar 30 #Javascript
一个关于javascript匿名函数的问题分析
Mar 30 #Javascript
JavaScript 基础篇(一)
Mar 30 #Javascript
js确定对象类型方法
Mar 30 #Javascript
js 浏览器事件介绍
Mar 30 #Javascript
js中eval详解
Mar 30 #Javascript
关于jquery性能最佳实践的讨论,与求教
Mar 30 #Javascript
You might like
PHP编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
2011/08/03 Javascript
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
js实现的捐赠管理完整实例
2015/01/20 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
2019/09/24 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
python PIL模块与随机生成中文验证码
2016/02/27 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
python中的协程深入理解
2019/06/10 Python
python tkinter基本属性详解
2019/09/16 Python
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
初中生学习生活的自我评价
2013/11/20 职场文书
小学生期末自我鉴定
2014/01/19 职场文书
颁奖晚会主持词
2014/03/25 职场文书
运动会横幅标语
2014/06/17 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
实验心得体会
2014/09/05 职场文书
单位工作证明格式模板
2014/10/04 职场文书
放弃继承权公证书
2015/01/23 职场文书
跑出一片天观后感
2015/06/08 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书