这篇文章主要介绍CSS怎么实现移动端图片无缝滚动效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<!doctype html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width,user-scalable=no"> <title>Document</title> <script type="text/javascript"> //获取html var html = document.documentElement; //设置html的字体大小 = 可视区的宽度 / 15 html.style.fontSize = html.clientWidth / 15 + 'px'; //阻止pc和浏览器默认行为。 document.addEventListener('touchstart',function(ev){ ev.preventDefault(); }); </script> <style> body{ margin: 0; } .wrap{ height: 4.68rem; position: relative; } .list{ padding: 0; margin: 0; width:400%; position: absolute; top:0; left:0; list-style: none; } .list li{ float: left; width:15rem; } .list img{ width:15rem; display: block; } nav{ width:15rem; height: 10px; position: absolute; bottom:5px; z-index: 1; text-align:center; } nav a{ width:15px; height: 15px; display: inline-block; background: red; border-radius:50%; vertical-align:top; } nav a.active{ background:#fff; } </style> </head> <body> <section> <ul> <li> <img src="img/img.jpg" alt="" /> </li> <li> <img src="img/img2.jpg" alt="" /> </li> <li> <img src="img/img3.jpg" alt="" /> </li> <li> <img src="img/img4.jpg" alt="" /> </li> </ul> <nav> <a href="javascript:;"></a> <a href="javascript:;"></a> <a href="javascript:;"></a> <a href="javascript:;"></a> </nav> </section> <script type="text/javascript"> var wrap=document.getElementsByClassName("wrap")[0], list=document.getElementsByClassName("list")[0], disX=0, listL=0, n=0, w=wrap.clientWidth, s=0, timer=0; a=document.getElementsByTagName("a"); list.addEventListener("touchstart",start); list.addEventListener("touchmove",move); list.addEventListener("touchend",end); list.innerHTML+=list.innerHTML; len=list.children.length; console.log(len); list.style.width=w*len+"px"; function start(ev){ clearInterval(timer); var e=ev.changedTouches[0]; disX=e.pageX; list.style.transition="none"; var num=Math.round(list.offsetLeft/w); list.style.left=num*w+"px"; if(num==0){ num=a.length; list.style.left=-num*w+"px"; } if(-num==len-1){ num=a.length-1; list.style.left=-num*w+"px"; } listL=this.offsetLeft; } function move(ev){ var e=ev.changedTouches[0]; list.style.left=(e.pageX-disX)+listL+"px"; } function end(){ var num=Math.round(list.offsetLeft/w); console.log(num) list.style.transition="0.5s"; list.style.left=num*w+"px"; a[n].className=""; a[(-num)%a.length].className="active"; n=(-num)%a.length; timer=setInterval(function(){ inn(); },1000) s=-num; } timer=setInterval(function(){ inn(); },1000) function inn(){ s++; list.style.left=-s*w+"px"; list.style.transition="0.5s"; console.log(s); if(s>len-1){ s=a.length-1; list.style.transition="none"; list.style.left=-s*w+"px"; console.log(list.style.left); setTimeout(function(){ list.style.transition="0.5s"; s++; list.style.left=-s*w+"px"; a[n].className=""; a[s%a.length].className="active"; n=s%a.length; },30) } a[n].className=""; a[s%a.length].className="active"; n=s%a.length; } </script> </body> </html>
以上是CSS怎么实现移动端图片无缝滚动效果的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。