189 8069 5689

js怎么实现无限循环轮播图效果

小编给大家分享一下js怎么实现无限循环轮播图效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

从网站建设到定制行业解决方案,为提供网站制作、成都网站设计服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。成都创新互联将不断加快创新步伐,提供优质的建站服务。

知识要点

1.实现无限循环的原理:

以偏移的距离来判断是否跳回第一张和最后一张

也可以利用循环判断图片的当前索引值

var newLeft=parseInt(list.style.left)+offset;//当前的偏移量+下一次的偏移量=新的偏移量
list.style.left=newLeft+"px";//当前的偏移值=新的偏移值
//以偏移的距离来判断是否跳回第一张和最后一张
if(newLeft>-600){
 list.style.left=-3000+"px";
}
if (newLeft<-3000){
 list.style.left=-600+"px";
}

2.当前图片轮播的圆点变色显示:

因为每次点击index+1 所以当前的index-1就是button的索引

//添加on前先清空on
for(var i=0;i

3.实现动画滚动效果:

原理就是把每次的偏移量分为多次完成比如一次600px那就分为10次每次偏移60px

就要用到setTimeout(go,10);//10毫秒再次调用go函数,一直到不满足条件就停

var newLeft=parseInt(list.style.left)+offset;//当前的偏移量+下一次的偏移量=新的偏移量
var time=300;//位移总时间
var interval=10;//位移间隔时间
//动画效果自定义公式: 每次位移的距离=单次偏移距离/位移次数
var speed=offset/(time/interval);
//递归函数 直到不满足条件(跳到辅助图)
//递归就是把600偏移量分为多次完成偏移
function go(){
 //speed<0 并且 当前偏移量>下一次偏移量 就是向左偏移 || 反之向右偏移 
 if ((speed<0 &&parseInt(list.style.left)>newLeft) || (speed>0 &&parseInt(list.style.left)-600){
 list.style.left=-3000+"px";
 }
 if (newLeft<-3000){
 list.style.left=-600+"px";
 }
 }
}

4.点击圆点按钮执行动画:

原理获取当前的按钮位置再获取要点击的按钮的位置

用(点击的——当前的)*-600=需要跳转的正负距离(向左或向右)

for(var i=0;i

5.自动播放:

给外层容器加个onmouseover事件再调用setInterval方法

//给方法定义全局变量是因为停止的时候要使用
function play(){
 timer=setInterval(function(){
 next.onclick();
 },3000);
}
clearInterval(timer)

完整代码

注:图片链接本地替换一下





demo
 
 

 
 
   
  
  
  
  
  
  
 
                  
 <  >  
   //在页面加载完后立即执行多个函数方案。  function addloadEvent(func){  var oldonload=window.onload;  if(typeof window.onload !="function"){   window.onload=func;  }  else{   window.onload=function(){   if(oldonload){    oldonload();    }   func();   }  }  }  //在页面加载完后立即执行多个函数方案结束。  addloadEvent(lbt);  //轮播图动画切换原理  function lbt(){  var container=document.getElementById("container");  var prev=document.getElementById("prev");  var next=document.getElementById("next");  var list=document.getElementById("list");  var buttons=document.getElementById("buttons").getElementsByTagName("span");  var imgs=list.getElementsByTagName("img");  var index=1;  var animated=false;  var timer;  //当前图片轮播的圆点变色显示,原理:index数值是跟随list滑动次数递增的,第一次index=1,所以第一个button的索引值就是0。  //for循环是添加on样式之前要清空之前的on。  function showButton(){  for(var i=0;i下一次偏移量 就是向左偏移 || 反之向右偏移   if ((speed<0 &&parseInt(list.style.left)>newLeft) || (speed>0 &&parseInt(list.style.left)-600){  list.style.left=-3000+"px";  }  if (newLeft<-3000){  list.style.left=-600+"px";  }  }  }  go();  }  //自动播放3秒执行一次next.onclick  function play(){  timer=setInterval(function(){  next.onclick();  },3000);  }  function stop(){  clearInterval(timer);  }  //执行所有函数  next.onclick=function(){  if(index==5){  index=1;  }else{  index+=1;  }  showButton();  if(!animated){  animate(-600);  }  }  //执行所有函数  prev.onclick=function(){  if(index==1){  index=5;  }else{  index-=1;  }  showButton();  if(!animated){  animate(600);  }  }  //点击圆点按钮 偏移  for(var i=0;i  

以上是“js怎么实现无限循环轮播图效果”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


文章名称:js怎么实现无限循环轮播图效果
分享链接:http://cdxtjz.cn/article/ghedpo.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。