小编给大家分享一下js如何实现无缝滚动图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
效果图:
代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style type = "text/css"> *{margin: 0; padding: 0;} li { list-style: none; } .box { width: 800px; height: 450px; margin: 50px auto; overflow: hidden; position: relative; } .box span { width: 40px; height: 60px; display: block; position: absolute; top: 225px; margin-top: -20px; cursor: pointer; z-index: 1; } .box #left { background: url('http://cdn.attach.qdfuns.com/notes/pics/201701/14/042311cbd7gbjd7sggkd2b.png') no-repeat; left: 0; display: none; } .box #right { background: url('http://cdn.attach.qdfuns.com/notes/pics/201701/14/042241w8z4hx4m4pjhyjzs.png') no-repeat; right: 0; display: none; } #ad { width: 4000px; height: 450px; position: absolute; } #ad li { float: left; } </style> <script type = "text/javascript"> window.onload = function(){ var ad = document.getElementById("ad"); var lef = document.getElementById("left"); var rig = document.getElementById("right"); var timer = null; //管理定时器 var aspect = true; function animate(obj,speed){ //关闭上一个定时器 clearInterval(obj.timer); //管理定时器 obj.timer = setInterval(autoAd,30); function autoAd(){ //判断左走或者右走 if(speed > 0){ aspect = true; if(obj.offsetLeft >= 0){ obj.style.left = -3200 + 'px'; } }else { aspect = false; if(obj.offsetLeft <= -3200){ obj.style.left = 0; } } //匀速动画: 盒子当前的位置 + 步长 obj.style.left = obj.offsetLeft + speed +"px"; } } animate(ad,-5); //鼠标划入显示控制按钮并关闭 ad.parentNode.onmouseover = function(){ clearInterval(ad.timer); lef.style.display = "block"; rig.style.display = "block"; }; //鼠标离开隐藏控制按钮并启动定时器 ad.parentNode.onmouseout = function(){ clearInterval(ad.timer); clearInterval(timer); lef.style.display = "none"; rig.style.display = "none"; if(aspect){ animate(ad,5); }else{ animate(ad,-5); } }; ad.onclick = function(event){ //关闭自动轮播定时器 clearInterval(ad.timer); clearInterval(timer); var event = event || window.event; if(event.target){ var target = - parseInt(event.target.alt) * 800; }else{ var target = - parseInt(event.srcElement.alt) * 800; } timer = setInterval(function(){ var step = (target - ad.offsetLeft) / 10; step = step > 0 ? Math.ceil(step):Math.floor(step); ad.style.left = ad.offsetLeft + step + "px"; if(ad.offsetLeft%800 == 0){ clearInterval(timer); } },20) } //右移动 lef.onclick = function(){ clearInterval(timer); animate(ad,5); }; //左移动 rig.onclick = function(){ clearInterval(timer); animate(ad,-5); }; } </script> </head> <body> <div class="box"> <ul id="ad"> <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153lscsitwp7sszb6zs.jpg" alt="0"></li> <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042152pfbkbfe8vbtvulfu.jpg" alt="1"></li> <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153u3jgn0ds43ndd3dz.jpg" alt="2"></li> <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042152juuohne22z60hbsb.jpg" alt="3"></li> <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153lscsitwp7sszb6zs.jpg" alt="4"></li> </ul> <span id="left"></span> <span id="right"></span> </div> </body> </html>
以上是“js如何实现无缝滚动图”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联网站建设公司行业资讯频道!
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章题目:js如何实现无缝滚动图-创新互联
网页URL:https://www.cdcxhl.com/article24/heice.html
成都网站建设公司_创新互联,为您提供移动网站建设、电子商务、网站制作、外贸建站、定制网站、App设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联