js实现无缝轮播图效果
本文实例为大家分享了js实现无缝轮播图的具体代码,供大家参考,具体内容如下
//Utils.js //封装预加载图片 varUtils=(function(){ return{ //SSS loadImg:function(srcList,callBack){//图片地址回调函数 varimg=newImage(); img.num=0;//初始化num为0图片数 img.imgList=[];//存放图片 img.srcList=srcList; img.callBack=callBack;//回调函数 img.addEventListener("load",this.loadHandler);//加载load img.src="./img/"+srcList[img.num];//拼接图片地址 }, loadHandler:function(e){ //this指代img /*cloneNode该方法将复制并返回调用它的节点的副本。 *如果传递给它的参数是true,它还将递归复制当前节点的所有子孙节点。 否则(也就是默认值,或者false),它只复制当前节点。*/ this.imgList.push(this.cloneNode(false));//将img图片尾插入imgList数组 this.num++; if(this.num>=this.srcList.length){//图片数>=srcList数组(保存图片地址)的长度 this.callBack(this.imgList);//将数组传入回调函数 return; } //事件侦听没有被删除,只需更改src,监听加载load后触发该事件,进入该函数this.loadHandler this.src="./img/"+this.srcList[this.num]; } } })();
全部代码:
无缝轮播图