本文实例为大家分享了js实现图片淡入淡出的具体代码,供大家参考,具体内容如下

分析过程:

1.给最大父元素里添加多张图片,让第一张图片的透明度为1 opacity: 1

其余图片的透明度为0;
给图片下面设置一排小点

2.获取每张图片,动态设置不同层级,层级大小从4到0依次设置;

Setz_index:function(){
        for(var i=0;i<this.Photo.length;i   ){
            index=i;
            this.Photo[i].style.zIndex =this.Photo.length-i-1;
        }
    },

3.给图片设置两种出现的方式,顺时针出现或者逆时针出现;图片变动的同时,对应的小点也进行变动。出现的图片层级最高,透明度为一,其余图片透明度为0,并且对应的小点颜色变为粉色。

Animatezindex:function(math,count){
       for(var i=0;i<count;i  ){
         for(var k=0;k<this.Photo.length;k  ) {
            //console.log(1);
           var index=parseInt (this.Photo[k].style.zIndex );  //43210  04321 10432
           if(math=="n"){
             index  ;    //小点从左向右变化颜色
             if(index ==this.Photo.length){
                 index=0;
                 this.Photo[k].style.opacity =0;
                 this.Crclelist [k].style.background ="#fff";
             }
             if(index==this.Photo.length-1){
                 this.Photo [k].style.opacity= 1;
                 this.Crclelist [k].style.background ="pink";
                 this.Savecolor= this.Crclelist [k];

             }
           }
             else{
               index--;   //小点从右向左变化颜色
               if(index==-1){
                   index=this.Photo.length-1;
               }
               if(index==this.Photo.length-1){
                   this.Photo [k].style.opacity= 1;
                   this.Crclelist [k].style.background ="pink";
                   this.Savecolor= this.Crclelist [k];
               }
               if(index==this.Photo.length-2){
                   this.Photo[k].style.opacity =0;
                   this.Crclelist [k].style.background ="#fff";
               }
           }
             this.Photo[k].style.zIndex =index;
         }
       }
    },

4.设置默认值,让第一个小点的颜色为粉色,当鼠标滑进最大父元素时,图片停止转动;当鼠标滑进小圆点时,分为两种情况,从当前的圆点的左边进入和右边进入。

Moren_set:function(){
        var that=this;
        that.Crclelist [0].style.background ="pink";
        that.Savecolor =that.Crclelist[0];
        that.Bigblock.onmouseenter=function(){
            //  console.log(1);
            window.cancelAnimationFrame ( glider.Timeset);
        };
        that.Bigblock.onmouseleave=function(){
            glider.Timelines();
        }
        //点的事件,跟随图片变化
        for(var i=0;i<that.Crclelist.length;i  ){
            that.Crclelist[i].index=i;
            that.Crclelist[i].onmouseenter =function(){
              var oldindex=that.Savecolor.index;
              var newindex=this.index;  //鼠标滑进的圆点的索引 this指的是当前的圆点的滑动事件
 //               console.log(newindex);
                if(newindex -oldindex >0) {   //从当前圆点的右边进
                  var ri=newindex -oldindex;
                  //  console.log(ri);
                    var le= that.Crclelist.length-ri;
                   // console.log(le);
                    if(ri<=le){
                        console.log("向右",ri);
                        that.Animatezindex("n",ri);
                    }
                    if(ri>le){
                        console.log("向左",le);
                        that.Animatezindex("s",le);
                    }
                }
                else if(newindex -oldindex<0){
                    var ri1=Math.abs(newindex-oldindex)   ; //取绝对值
                    var le1=that.Crclelist.length-ri1;
                    if(ri1<=le1){
                        console.log("向左", ri1);
                        that.Animatezindex("s",ri1);
                    }
                    if(ri1>le1){
                        console.log("向右", le1);
                        that.Animatezindex("n",le1);
                    }

                }
            }
        }
    }

5.设置转动事件,根据时间来改变控制图片的转动。

Timelines:function(){
        var nowtime=new Date().getTime ();
        if((nowtime -glider.Oldtime) >=glider.TimeDely ){
            glider.Oldtime =nowtime;
            glider.Animatezindex ("n",1);  //向 右变化
        }
        //可以通过setTimeout和setInterval方法来在脚本中实现动画,
        // 但是这样效果可能不够流畅,且会占用额外的资源。
        //requestAnimationFrame方法用于通知浏览器重采样动画,循环播放。
        /*cancelAnimationFrame
        cancelAnimationFrame 方法用于取消先前安排的一个动画帧更新的请求。*/
       glider.Timeset =window.requestAnimationFrame(glider.Timelines);
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持Devmax。

js实现图片淡入淡出效果的更多相关文章

  1. html5 拖拽及用 js 实现拖拽功能的示例代码

    这篇文章主要介绍了html5 拖拽及用 js 实现拖拽,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. ios – 如何删除UITableViewCell,使用淡入淡出效果并且没有红色删除按钮?

    在查看了无数的StackOverflow帖子后,没有什么能真正回答如何在淡入淡出和没有红色删除按钮的情况下删除UITableViewCell时使用滑动到关闭.我的Tableviewcell看起来像一张卡片,因此删除按钮的红色框架打破了卡片形状的这些细胞的连续性和高度感.这是我目前用来删除的代码,尽管UITableViewRowAnimation上有.fade,但它不会消失.这是我试图实现的行为的屏

  4. ios – 是否可以在两个视图背景图像之间淡入淡出?

    我想知道一些按钮是否可能导致从一个背景图像淡入另一个背景图像?

  5. swift皮筋弹动发射飞机ios源码

    这是一个款采用swift实现的皮筋弹动发射飞机游戏源码,游戏源码比较详细,大家可以研究学习一下吧。

  6. Swift与Js通过WebView交互

    开发环境:Swfit2.3XCode8.2基础概念jscontext,jscontext是代表JS的执行环境,通过-evaluateScript:方法就可以执行一JS代码JSValue,JSValue封装了JS与ObjC中的对应的类型,以及调用JS的API等JSExport,JSExport是一个协议,遵守此协议,就可以定义我们自己的协议,在协议中声明的API都会在JS中暴露出来,才能调用Swif

  7. JSCore swift

    如果双方相互引用,会造成循环引用,而导致内存泄露。以上是Jscore的基本使用,比较简单

  8. Swift WKWebView的js调用swift

    最近项目需求,需要用到JavaScriptCore和WebKit,但是网上的资源有限,而且比较杂,都是一个博客复制另外一个博客,都没有去实际敲代码验证,下面给大家分享一下我的学习过程。

  9. Swift WKWebView的swift调用js

    不多说,直接上代码:在html里面要添加的的代码,显示swift传过去的参数:这样就实现了swift给js传参数和调用!

  10. 在 Swift 專案中使用 Javascript:編寫一個將 Markdown 轉為 HTML 的編輯器

    你有強烈的好奇心,希望在你的iOS專案中使用JavaScript。jscontext中的所有值都是JSValue對象,JSValue類用於表示任意類型的JavaScript值。因此,我們既需要寫Swift代碼也要寫JavaScript代碼。此外,我們還會在JavaScript中按照這個類的定義來創建一個對象并對其屬性進行賦值。從Swift中呼叫JavaScript就如介紹中所言,JavaScriptCore中最主要的角色就是jscontext類。一個jscontext對象是位於JavaScript環境和本

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部