最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js实现无缝滚动双图切换效果

来源:动视网 责编:小采 时间:2020-11-27 21:53:59
文档

js实现无缝滚动双图切换效果

js实现无缝滚动双图切换效果:本文记录的是在html中写两个img实现多张图片的无缝滚动,供大家参考,具体内容如下 html结构如下: <div class=wrap> <ul class=list> <li> <img src=img/img0.png> </li> &
推荐度:
导读js实现无缝滚动双图切换效果:本文记录的是在html中写两个img实现多张图片的无缝滚动,供大家参考,具体内容如下 html结构如下: <div class=wrap> <ul class=list> <li> <img src=img/img0.png> </li> &


本文记录的是在html中写两个img实现多张图片的无缝滚动,供大家参考,具体内容如下

html结构如下:

<div class="wrap">
 <ul class="list">
 <li>
 <img src="img/img0.png">
 </li>
 <li>
 <img src="img/img1.png">
 </li>
 </ul>
 <a href="javascript:;" class="prev">prev</a>
 <a href="javascript:;" class="next">next</a>
</div>

css样式不再详述,想要使图片位置发生变化,方法有很多。此次用的是定位,修改.list的left值。

js代码如下:

(function(){
 var list=document.querySelector(".list");
 var imgs=document.querySelectorAll("img");
 var prev=document.querySelector(".prev");
 var next=document.querySelector(".next");
 var imgW=css(imgs[0],"width");//使用封装好的css()获取img的宽度
 var now=0;
 var imgData=["img/img0.png",
 "img/img1.png",
 "img/img2.png",
 "img/img3.png",];
 prev.onclick=function(){
 //找出接下来要显示的图片的下标
 var prev=(now-1+imgData.length)%imgData.length;
 //因为是从右往左运动,当前显示的应在右侧,即将显示的在左侧
 imgs[0].src=imgData[prev];
 imgs[1].src=imgData[now];
 //使用封装好的css()设置list的位置
 css(list,"left",-imgW);
 //使用封装好的运动函数来控制图片移动
 startMove(list,{left:0},2000,"easeOut");
 now=prev;
 }
 next.onclick=function(){
 var next=(now+1)%imgData.length;
 imgs[0].src=imgData[now];
 imgs[1].src=imgData[next];
 css(list,"left",0);
 startMove(list,{left:-imgW},2000,"easeOut");
 now=next;
 }
})();

到这一步,大体功能已经实现。但是当频繁点击上一张/下一张按钮时,会发现图片在设定的运动时间闪换。解决这个问题有两个办法:1.减小运动时间,如将2000ms改为500ms,2.限定定时器只能开一个。

在上述js代码基础上增加以下代码,以上一张操作为例,增加定时器个数判断。

var isMove=false;//记录定时器开关状态
prev.onclick=function(){
 if(isMove){
 return;
 }
 ....上述上一张操作js代码
 isMove=true;
 startMove(list,{left:-imgW},2000,"easeOut",function(){
 isMove=false; 
 });
}

文档

js实现无缝滚动双图切换效果

js实现无缝滚动双图切换效果:本文记录的是在html中写两个img实现多张图片的无缝滚动,供大家参考,具体内容如下 html结构如下: <div class=wrap> <ul class=list> <li> <img src=img/img0.png> </li> &
推荐度:
标签: 图片 实现 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top