js实现无缝滚动双图切换效果
前端  /  管理员 发布于 4年前   690
本文记录的是在html中写两个img实现多张图片的无缝滚动,供大家参考,具体内容如下
html结构如下:
prev next
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实现图片无缝滚动特效
- div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
- js 实现无缝滚动 兼容IE和FF
- js向上无缝滚动,网站公告效果 具体代码
- jcarousellite.js 基于Jquery的图片无缝滚动插件
- javascript实现的左右无缝滚动效果
- js实现可控制左右方向的无缝滚动效果
- js实现文字列表无缝滚动效果
- 走马灯效果代码js appendChild实现的无缝滚动
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号