欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

JS无缝滚动

程序员文章站 2022-04-18 21:34:20
...
<!DOCTYPE html>
<html>
 
 <head>
  <meta charset="UTF-8">
  <title></title>
  <style type="text/css">
   ul,
   li {
    margin: 0;
    padding: 0;
    list-style-type: none;
   }
 
   img {
    height: 300px;
    width: 300px;
   }
 
   ul {
    position: absolute;
    left: 0;
    top: 0;
   }
 
   li {
    float: left;
   }
 
   #div1 {
    height: 300px;
    width: 1200px;
    background-color: red;
    margin: 100px auto;
    position: relative;
    overflow: hidden;
   }
   input{
    border: 1px solid #8A2BE2;
    height: 100px;
    width: 200px;
    font-size: 20px;
    color: white;
    background-color: #FFB6C1;
    margin-left: 100px;
   }
  </style>
 </head>
 
 <body>
  <div id="div1">
   <ul>
    <li><img src="img/014.jpg" /></li>
    <li><img src="img/017.jpg" /></li>
    <li><img src="img/018.jpg" /></li>
    <li><img src="img/019.jpg" /></li>
   </ul>
  </div>
  <input type="button" value="向左滚动" />
  <input type="button" value="向右滚动" />
 </body>
 <script type="text/javascript">
 // 实现无缝滚动,鼠标移入停止滚动,移出继续滚动,以及可以调节滚动方向效果
  var oDiv = document.getElementById("div1");
  var ul = document.getElementsByTagName("ul")[0];
  var liS = document.getElementsByTagName("li");
 
  var timer = null;
  var speed = 4;
  ul.innerHTML = ul.innerHTML + ul.innerHTML;
  ul.style.width = liS[0].offsetWidth * liS.length + "px";
 
  timer = setInterval(move, 30);
 
  oDiv.onmouseover = function() {//实现鼠标移入暂停
   clearInterval(timer);
  }
  oDiv.onmouseout = function() {//鼠标移出继续滚动
   timer = setInterval(move, 30);
 
  }
 
  move();//每次执行move()的时候都会延迟30ms,//
/在第一次的实际效果上有瑕疵,在外面调用一次move()
 
  function move() {
   if(-ul.offsetLeft > ul.offsetWidth / 2) {//左滚无缝
    ul.style.left = 0 + "px";
   }
 
   if(ul.offsetLeft > 0) {//右滚无缝
    ul.style.left = -ul.offsetWidth / 2 + "px";
   }
 
   ul.style.left = ul.offsetLeft + speed + "px";
  }

//实现通过按钮改变运动方向的功能

  var inputs = document.getElementsByTagName("input");
  inputs[0].onclick = function() {
   speed = -4;
  }
  inputs[1].onclick = function() {
   speed = 4;
  }
 </script>
 
</html>
相关标签: JavaScript