Javascrip 淡入淡出思路

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

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

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

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

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

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

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

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

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

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

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

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

注:转载自 脚本之家 作者不明

时间: 2024-11-19 08:44:48

Javascrip 淡入淡出思路的相关文章

窗口淡入淡出

思路 1)#define WINVER 0X500  // 放在所有头文件前 #include <winuser.h> 2) WM_CREATE AnimateWindow(hwnd, 1000, AW_ACTIVATE|AW_BLEND); InvalidateRect(hwnd, NULL, TRUE); UpdateWindow(hwnd); 3) WM_CLOSE AnimateWindow(hwnd, 1000, AW_HIDE|AW_BLEND); 注:除淡入淡出外,还有滑动特效

javascript 图片淡入淡出效果 实例源代码

? 1 代码说明:把代码粘贴好之后,需要更改html代码中的图片路径,即可执行成功.<br>后面还有对js代码的详细说明,希望大家好好消化,好好理解.<br><br>html源代码: 1 <head> 2 <title>图片切换</title> 3 <script type="text/javascript" src="图片切换.js"></script> 4 <l

Android 1分钟教你打造酷炫的引导页(实现ViewPager淡入淡出切换)

纯手工自制的Android引导页,实现了Viewpager切换的淡入淡出(页面不移动!)切换以及文字动画. 下面是效果演示: 实现思路+心路历程...: 其实别的都还蛮简单的,就是这个ViewPager的淡入淡出切换动画比较棘手,以前都没有做过,然后去网上找了好久好久. 其中碰到各种坑无数,大概90%的人是引的 JazzyViewPager的包然后就balabala说自己实现了种种功能,真是醉了.... 结论是国内根本找不到这个效果的实现嘛.... 然后 在Github下了JazzyViewPa

多物体的淡入淡出,多物体运动框架

上面一个小例子展示了一张图片的淡入淡出,但实际情况可能有多个物体,在不同的物体之间进行切换,其实原理一样,只是添加多个不同的参数,控制定时器的开启与关闭,下面来展示在多个div之间来回切换,实现淡入淡出. <!DOCTYPE html><html><head> <meta charset="utf-8"> <title></title> <style type="text/css">

Unity3D 4.61 实现淡入淡出的场景过渡方法。

还在学习过程中,如果有大大看到请指点. 由于使用原本的Application.LoadLevel()函数可以直接加载场景. 但由于太过生硬,所以这里就做一个淡入淡出的效果来进行过渡. 一.思路: 只要在加载完成并切换完成之前,先黑屏,切换完成之后在在恢复就可以了. 1.创建一个遮罩. 颜色用黑色.#000 Alpha默认设置为0. 让遮罩层覆盖整个屏幕. 设置遮罩层不被销毁. 2.执行场景切换时,修改遮罩层的Alpha值,由透明修改成不透明. 注:在脚本里,Alpha值0是透明,1是不透明. 3

(38)JS运动之淡入淡出

基本思路:使用样式filter,但是要区分IE浏览器和chrom.firefox的不同,具体也是用定时器来实现. <!DOCTYPE HTML> <!-- --> <html> <head> <meta charset="utf-8"> <title></title> <style> #div1{ width:200px; height:200px; background:red; filt

基于Android淡入淡出弹幕实现

最近遇到需求,需要在某张用户发表的图片中展示评论,方式是以淡入淡出的弹幕形式.需求为淡入事件t1->淡出t2,所有弹幕依次开始播放,中间一定的时间间隔deltaT.仔细考虑之后,想到以下实现方式,现总结下来并进行实现.分析以及比较. 不妨认定弹幕的画布为BarrageView:每条弹幕的绘制为BarrageItemView. 属性动画 从只有一条弹幕开始思考,我们需要设计一个属性动画,负责淡入: 在该动画的完成回调函数onAnimationEnd中启动淡出动画,在淡出动画的完成回调函数中,对该B

jQuery淡入淡出轮播图实现

大家好我是QD小白,这是人生第一次写博客,准备写的内容是Jquery淡入淡出轮播图实现,在此之前学习JS写的轮播图效果都感觉不怎么好,学习了jQuery里的淡入淡出效果后又写了一次轮播图效果明显感觉好了许多.现在我就来分享下自己写轮播图的思路和方法. HTML部分: <div id="img-box" style="width:700px; height:350px;"> <img style="opacity: 1;" wid

有关网页常见图片淡入淡出的效果的随笔

网页常见的图片淡入淡出的效果还是比较常见的,在这里,我个人来分享一些自己的一些笔记. <!DOCTYPE html><html><head>    <meta charset="utf-8">    <title>淡入淡出图片效果图</title>    <style type="text/css">        #img1{ filter:alpha(opacity:30); o