js 实现横向滚动轮播并中间暂停下

匿名 (未验证) 提交于 2019-12-02 23:57:01

效果:

 

 

html:

<!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">         <title>滚动+停顿</title>         <style type="text/css">             body {                 margin: 0;             }              #container {                 position: relative;                 height: 200px;                 overflow: hidden;             }              #list {                 position: absolute;                 z-index: 1;                 width: 4200px;                 height: 200px;             }              #list .item {                 float: left;                 text-align: center;             }              .slide {                 width: 200px;                 height: 200px;             }         </style>         <script src="js/jquery.js"></script>     </head>     <body>         <div id="container" class="container">             <div id="list"></div>         </div>         <script type="text/javascript" language=javascript>             window.qglist = [{                     gimg: 'img/1.jpg',                     gname: '111'                 },                 {                     gimg: 'img/2.jpg',                     gname: '222'                 },                 {                     gimg: 'img/3.jpg',                     gname: '333'                 }             ];             initScroll();              function initScroll() {                 var len = window.qglist.length,                     j = 0,                     l = window.qglist.length - 1,                     string1 = makeStr(window.qglist, l),                     string2 = makeStr(window.qglist, 0);                 $('#list').append(string1);                 while (j < len) {                     var string = makeStr(window.qglist, j);                     $('#list').append(string);                     j++;                 }                 $('#list').append(string2);                 window.scrWid = $('.container')[0].offsetWidth + 'px';                 $('#list').css("left", '-' + scrWid);                 $('.item').css("width", scrWid);                 var container = $('#container'),                     list = document.getElementById('list'),                     index = 1,                     timer;                  function animate(offset, unit) {                     var newLeft = parseInt(list.style.left) - unit,                         newL = Math.abs(newLeft),                         scrW = parseInt(window.scrWid),                         num = newL % scrW;                     if (num == 0) {                         stop();                         setTimeout(function() {                             play();                         }, 2000);                     }                     list.style.left = newLeft + 'px';                     //无限滚动判断                     if (newLeft > offset) {                         list.style.left = offset * len + 'px';                     }                     if (newLeft < offset * (len + 1)) {                         list.style.left = offset + 'px';                     }                 }                  function play() {                     //重复执行的定时器                     timer = setInterval(function() {                         start();                     }, 1)                 }                  function stop() {                     clearInterval(timer);                 }                  function start() {                     if (index > len) {                         index = 1                     }                     var n = parseInt(scrWid);                     animate(-n, 1);                     index += 1;                 };                 if (len > 1) {                     play();                 }             }              function makeStr(arr, n) {                 var str = "<div class='item'><div>" +                     "<img class='slide' src='" + arr[n].gimg + "'></div></div>";                 return str;             }         </script>     </body> </html>

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!