使用js实现轮播图旋转木马效果

  介绍

使用js实现轮播图旋转木马效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强>思路:给定一个数组,储存每张图片的位置,旋转将位置进行替换

左旋转:将数组数据删除,然后添加到数组的右旋转:将数组<强> 数据删除,然后添加到数组的<强> 先附上效果图,再来实现

使用js实现轮播图旋转木马效果

接下来就是最主要的,封装原生js动画函数

//封装函数获取任意一个元素的任意属性的值(兼容ie8)   函数getStyle(元素,attr) {   返回窗口。getComputedStyle, # 63;窗口。getComputedStyle(元素,null) [attr]: element.currentStyle [attr);   }//封装js变速动画   函数动画(元素、json、fn) {//每次启动定时器之前先停止   clearInterval (element.tmId);   元素。tmId=setInterval(函数(){   var=true标记;//遍历对象中的每个属性   (var attr json) {//执行透明度动画   如果(attr==皁pacity") {//获取当前元素的属性值   当前var=方法(getStyle(元素,attr) * 100);//获取目标值   var目标=json (attr) * 100;//移动的步数   var=(目标-电流)/10步;   一步=一步比;0,# 63;Math.ceil(步骤):Math.floor(步骤);//移动后的值   当前+=步骤;   元素。风格(attr]=当前/100;   }else if (attr==皕Index") {//改变层级属性   元素。风格(attr]=json (attr);   其他}{//获取当前元素的属性值   当前var=方法(getStyle(元素,attr));//获取目标值   var目标=json (attr);//移动的步数   var=(目标-电流)/10步;   一步=一步比;0,# 63;Math.ceil(步骤):Math.floor(步骤);//移动后的值   当前+=步骤;   元素。风格(attr]=当前+“px";   如果当前!(=目标){   国旗=false;   }   }   }   如果(国旗){   clearInterval (element.tmId);//如果有回调函数就调用   如果(fn) fn ();   }//测试//console.log(“目标:“+目标+,/当前:“+当前+“/步数:“+步骤);   },20);   }

封装完函数,剩下的直接调用就可以了,最后附上旋转木马完整代码,# 63;

& lt; !DOCTYPE html>   & lt; html>   & lt;头lang=癳n"祝辞   & lt;元charset=癠TF-8"祝辞   & lt; title>旋转木马轮播图& lt;/title>   & lt;链接rel=皊tylesheet"href=癱ss/css (1) .css"rel=巴獠縩ofollow"/比;   & lt;脚本src=癱ommon.js"祝辞& lt;/script>   & lt; script>   var配置=[   {   宽度:400年,   上图:20,   左:50,   透明度:0.2,   zIndex: 2   },//0   {   宽度:600年,   上图:70年,   左:0,   透明度:0.8,   zIndex: 3   },//1   {   宽度:800年,   上图:100年,   左:200年,   透明度:1、   zIndex: 4   },//2   {   宽度:600年,   上图:70年,   左:600年,   透明度:0.8,   zIndex: 3   },//3   {   宽度:400年,   上图:20,   左:750年,   透明度:0.2,   zIndex: 2   }//4      ];      窗口。onload=function () {   var=true标记;=$ var列表查询(“# slide") .getElementsByTagName (“li");      函数花(){//1,图片散开   (var=0;我& lt;list.length;我+ +){//设置每个李的宽,透明度,左,前,zindex   动画([我]列表,配置[我],函数(){   国旗=true;   });   }   }      花();//初始化调用函数//按钮的显示与隐藏   查询(“# slide")美元。onmouseover=function () {   查询(“# arrow") .style美元。不透明度=?”;   }   查询(“# slide")美元。onmouseout=function () {   查询(“# arrow") .style美元。不透明度=?”;   }//点击切换   查询(“# arrLeft")美元。onclick=function () {   如果(国旗){   config.unshift (config.pop ());   花();   国旗=false;   }   }   查询(“# arrRight")美元。onclick=function () {   如果(国旗){   config.push (config.shift ());   花();   国旗=false;   }   }//自动切换   setInterval(函数(){   config.push (config.shift ());   花();   },2000);   }   & lt;/script>      & lt;/head>   & lt; body>   & lt; div类=皐rap"id=皐rap"比;   & lt; div类=皊lide"id=皊lide"比;   & lt; ul>   & lt; li> & lt; a href=?“祝辞& lt; img src=巴枷?slidepic1.jpg"alt=啊?祝辞& lt;/a> & lt;/li>   & lt; li> & lt; a href=?“祝辞& lt; img src=巴枷?slidepic2.jpg"alt=啊?祝辞& lt;/a> & lt;/li>   & lt; li> & lt; a href=?”;祝辞& lt; img src=巴枷?slidepic3.jpg"alt=啊?祝辞& lt;/a> & lt;/li>   & lt; li> & lt; a href=?“祝辞& lt; img src=巴枷?slidepic4.jpg"alt=啊?祝辞& lt;/a> & lt;/li>   & lt; li> & lt; a href=?“祝辞& lt; img src=巴枷?slidepic5.jpg"alt=啊?祝辞& lt;/a> & lt;/li>   & lt;/ul>   & lt; div类=癮rrow"id=癮rrow"比;   & lt; a href=癹avascript:无效(0);“类=皃rev"id=癮rrLeft"祝辞& lt;/a>   & lt; a href=癹avascript:无效(0);“类=皀ext"id=癮rrRight"祝辞& lt;/a>   & lt;/div>   & lt;/div>   & lt;/div>      & lt;/body>   & lt;/html>

使用js实现轮播图旋转木马效果