温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

原生Js如何实现简单无缝滚动轮播图

发布时间:2021-05-11 14:08:17 来源:亿速云 阅读:207 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关原生Js如何实现简单无缝滚动轮播图的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

原简单的滚动轮播代码

<html> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title>     <style>         *{             margin: 0;             padding: 0;         }         .scroll{             position: relative;             width: 830px;/*展示宽度 展示4个图+3个边框=830*/             height: 130px;             border: 10px solid rgb(15, 15, 15);             margin: 100px auto;             overflow: hidden;         }         .scroll ul{             position: absolute;             width: 5000px;/*ul能存下所有li的宽*/             height: 130px;             top: 0;             left: 0;         }         .scroll ul li{             float: left;             width: 200px;             height: 130px;             margin-right: 10px;             overflow: hidden;         }     </style> </head> <body>     <div id="scroll" class="scroll">         <ul id="munit">             <li><img src="../BOM/shuzi/3.png" alt=""></li>             <li><img src="../BOM/shuzi/4.png" alt=""></li>             <li><img src="../BOM/shuzi/5.png" alt=""></li>             <li><img src="../BOM/shuzi/6.png" alt=""></li>             <li><img src="../BOM/shuzi/7.png" alt=""></li>             <li><img src="../BOM/shuzi/8.png" alt=""></li>             <li><img src="../BOM/shuzi/9.png" alt=""></li>             <li><img src="../BOM/shuzi/3.png" alt=""></li>             <li><img src="../BOM/shuzi/4.png" alt=""></li>             <li><img src="../BOM/shuzi/5.png" alt=""></li>             <li><img src="../BOM/shuzi/6.png" alt=""></li>             <li><img src="../BOM/shuzi/7.png" alt=""></li>             <li><img src="../BOM/shuzi/8.png" alt=""></li>             <li><img src="../BOM/shuzi/9.png" alt=""></li>         </ul>     </div>     <script>         //获取元素         var scroll = document.getElementById("scroll");         var munit = document.getElementById("munit");         var li = munit.children;         // 进行滚动         var nowLeft = 0;         //要找到ul元素运动的折返点         var back = -1470;//图和边框是li的宽度,展示的有4张图,所以折返点就是1260         //定时器         var timer = setInterval(run,20);         // 鼠标移上scroll停止         scroll.onmouseover = function(){             clearInterval(timer);         }         // 移开轮播         scroll.onmouseout = function(){             timer = setInterval(run,20);         }         //运动函数         function run(){             nowLeft -= 2;             //判断是否走到了折返点,走到了,则瞬间切换到0位置             if(nowLeft <= back){                 nowLeft = 0;             }             munit.style.left = nowLeft + "px";         }             </script> </body> </html>

   在<div id="scroll">结构给ul新增的一个父级div,这样之后添加图片,后期通过获取ul宽度就可以了计算折算点
   1、折返点计算需要通过Js自动计算
   var back = -munit.offsetWidth;//元素左移,值为负数
   2、自动生成另一组对应的图片结构 li
   munit.innerHTML = munit.innerHTML + munit.innerHTML;//这样就会增加一组li标签,后期增加图片也会随之增加
修改部分代码,

css改写部分:   /*给ul新增的一个父级div,这样添加图片后期获取ul宽度 就可以了 */         .scroll .inner{             position: relative;             width: 5000px;         }         .scroll ul{             position: absolute;             height: 130px;             top: 0;             left: 0;             list-style: none; body改写部分:       <body>     <div id="scroll" class="scroll">        <div class="inner">            <ul id="munit">               <li><img src="../BOM/shuzi/3.png" alt=""></li>               <li><img src="../BOM/shuzi/4.png" alt=""></li>               <li><img src="../BOM/shuzi/5.png" alt=""></li>               <li><img src="../BOM/shuzi/6.png" alt=""></li>               <li><img src="../BOM/shuzi/7.png" alt=""></li>               <li><img src="../BOM/shuzi/8.png" alt=""></li>               <li><img src="../BOM/shuzi/9.png" alt=""></li>               <li><img src="../BOM/shuzi/10.png" alt=""></li>           </ul>        </div>     </div> JS改写部分: <script>         //获取元素         var scroll = document.getElementById("scroll");         var munit = document.getElementById("munit");         //改写部分         //1 折返点计算需要通过Js自动计算         var back = -munit.offsetWidth;//元素左移,值为负数         //2 自动生成另一组对应的图片结构 li         munit.innerHTML = munit.innerHTML + munit.innerHTML;         // 进行滚动         var nowLeft = 0;         //定时器         var timer = setInterval(run,20);         // 鼠标移上scroll停止         scroll.onmouseover = function(){             clearInterval(timer);         }         // 移开轮播         scroll.onmouseout = function(){             timer = setInterval(run,20);         }         //运动函数         function run(){             nowLeft -= 1;             //判断是否走到了折返点,走到了,则瞬间切换到0位置             if(nowLeft <= back){                 nowLeft = 0;             }             munit.style.left = nowLeft + "px";         }     </script> </body> </html>

这样的代码耦合性低,也适合任意个数的li、任意大小的图片的加入

感谢各位的阅读!关于“原生Js如何实现简单无缝滚动轮播图”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js
AI