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 相关文章推荐
JS提交并解析后台返回的XML的代码
Nov 03 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
Nov 22 Javascript
javascript使用输出语句实现网页特效代码
Aug 06 Javascript
javascript cookie的简单应用
Feb 24 Javascript
javascript 动态脚本添加的简单方法
Oct 11 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
Oct 13 Javascript
Angular的$http的ajax的请求操作(推荐)
Jan 10 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
Sep 20 Javascript
详解plotly.js 绘图库入门使用教程
Feb 23 Javascript
vue以组件或者插件的形式实现throttle或者debounce
May 22 Javascript
微信小程序 组件的外部样式externalClasses使用详解
Sep 06 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
May 09 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
ASP和PHP都是可以删除自身的
2007/04/09 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
固定网页背景图同时保持图片比例的思路代码
2013/08/15 Javascript
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
2019/05/07 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
What is EJB
2016/07/22 面试题
毕业自我评价
2014/02/05 职场文书
美术教师自我鉴定
2014/02/12 职场文书
2014年冬季防火方案
2014/05/21 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
Mysql Online DDL的使用详解
2021/05/20 MySQL