JS实现图片不间断滚动

方法一:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8">
  <title></title>
  <style type="text/css">
    *{
      margin: 0px;
      padding: 0px;
    }
    #outside{
      width: 1200px;
      overflow: hidden;
      margin: 0 auto;
      height: 300px;
    }

    #outside #inside{
      width: 3100px;
    }

    #outside #inside div{
      width: 300px;
      height: 300px;
      margin: 0px 5px;
      background-color: red;
      float: left;
    }

  </style>

</head>

<body>

  <div id="outside">
    <div id="inside">
      <div>1</div>
      <div>2</div>
      <div>3</div>
      <div>4</div>
      <div>5</div>
      <div>6</div>

      <div>1</div>
      <div>2</div>
      <div>3</div>
      <div>4</div>
    </div>
  </div>

</body>
</html>

<script type="text/javascript">

var num = 0;

var inside = document.getElementById("inside");
  setInterval(function(){
  num-=1;
  inside.style.marginLeft = num+"px";

  console.log(inside.style.marginLeft);

  if(num<=-1860){
    num = 0;
  }
},1);

</script>

 

方法二:

<!DOCTYPE html>
<html>
  <head>
  <meta charset="UTF-8">
  <title></title>

  <style type="text/css">
    #outside{
      width: 800px;
      height: 200px;
      overflow: hidden;
    } 
    #div{
      width: 1000000px;
    }
    #div1,#div2{
      width: auto;
      float: left;
    }
    img{
      width: 200px;
      height: 200px;
    }
  </style>


</head>
<body>
  <div id="outside">
    <div id="div">
      <div id="div1">
        <img src="../img/2017-03-14_124354.png" />
        <img src="../img/2017-03-14_124422.png"/>
        <img src="../img/2017-03-14_124708.png"/>
        <img src="../img/2017-03-14_131608.png"/>
      </div>
      <div id="div2"></div>
    </div>
  </div>

<script type="text/javascript">

  var outside=document.getElementById("outside");
  var div1=document.getElementById("div1");
  var div2=document.getElementById("div2");

  div2.innerHTML=div1.innerHTML;

  var gunDong=setInterval(function(){
    if(div2.offsetWidth-outside.scrollLeft<=0) { 
      outside.scrollLeft-=div1.offsetWidth 
    }else{ 
      outside.scrollLeft++; 
    } 
  },10)

//.offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变
//.scrollLeft 代表页面利用滚动条滚动到右侧时,隐藏在滚动条左侧的页面的宽度

  outside.onmouseover=function() { 
    clearInterval(gunDong); //鼠标放上滚动停止
  }
  outside.onmouseout=function() {//鼠标移开继续滚动
    gunDong=setInterval(function(){
      if(div2.offsetWidth-outside.scrollLeft<=0) { 
        outside.scrollLeft-=div1.offsetWidth 
      }else{ 
        outside.scrollLeft++; 
      } 
    },10)
  }

</script>


</body>
</html>

 

posted @ 2017-04-16 22:50  李伟2017  阅读(3954)  评论(0编辑  收藏  举报