美文网首页
js实现循环无缝滚动

js实现循环无缝滚动

作者: Jason_Pan | 来源:发表于2016-10-09 09:41 被阅读0次

原理一(scrollDiv滚动,浮动改变left值)

大的div(bigDiv)包含一个滚动的div(scrollDiv),这个scroll宽度必须大于bigDiv。当scroll滚动完之后不能显示空白,所以要创建一个同样的scroll放到原来的scroll后面,并把原来的scroll的left值变为0;实现无缝滚动;

原理二(bigDiv滚动其scrollLeft++,使其滚动)

让在外面的bigDiv 滚动ScrollLeft++当到达某个位置是让他复位,然后在++

原理一代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .screen {
            width: 600px;
            height: 215px;
            margin: 100px auto;
            background-color: pink;
            position: relative;
            overflow: auto;
        }
        img {
            /*去掉图片底部三像素问题*/
            vertical-align: top;
        }
        * {
            margin: 0;
            padding:0;
            border: 0;
        }
        ul {
            list-style: none;
        }
        .screen ul li {
            float: left;
        }
        .screen ul {
            width:500%;
            position: absolute;
            left:0;
            top:0;
        }
    </style>
</head>
<body>
<div class="screen">
    <ul id="scroll">
        <li><img src="images/01.jpg" alt=""></li>
        <li><img src="images/02.jpg" alt=""></li>
        <li><img src="images/03.jpg" alt=""></li>
        <li><img src="images/04.jpg" alt=""></li>
    </ul>
</div>
<script>
    var ul = document.getElementById("scroll");
    var screen = document.getElementsByClassName("screen")[0];
    for(var i = 0; i <= 3; i++){
        var li = document.createElement("li");
        var child = ul.children[i];
        li.innerHTML = child.innerHTML;
        ul.appendChild(li);
    }
    var timer = null;
    timer = setInterval(autoScroll,1);
    var num = 0;
    function autoScroll() {
        num -= 0.25;
        num <= -1200 ? num = 0 : num;
        ul.style.left = num + "px";
    }
    screen.onmouseover = function () {
        clearInterval(timer);
    }
    screen.onmouseout = function () {
        timer = setInterval(autoScroll,1);
    }
</script>

</body>
</html>

原理二代码

<html>
<head>
<meta charset="UTF-8">
<title>无缝滚动</title>
</head>
<body>
<div id="demo">
    <div id="indemo">
         <div id="demo1"> 
              <a href="#">图片一</a> 
              <a href="#">图片二</a> 
              <a href="#">图片三</a> 
              <a href="#">图片四</a> 
              <a href="#">图片五</a> 
              <a href="#">图片六</a> 
         </div>
         <div id="demo2"></div>
    </div>
    <style>
        #demo{ 
 background:#FFF; 
 overflow:auto; 
 border:1px dashed #CCC; 
 width:500px; 
} 
#indemo{
 float:left;
 width:2000px;
} 
#indemo a{
 width:100px;
 height:100px;
 float:left;
 background-color:blue;
 margin-left:5px;
 text-align:center;
 line-height:100px;
 color:red;
 text-decoration:none;
}
#demo1{float:left;} 
#demo2{float:left;} 
 </style>
 <script>
 var speed=10; 
 var tab=document.getElementById("demo"); 
 var tab1=document.getElementById("demo1"); 
 var tab2=document.getElementById("demo2"); 
 tab2.innerHTML=tab1.innerHTML; 
 console.log(tab1.offsetWidth);
 console.log(tab2.offsetWidth);
 tab.scrollLeft = 100;
 console.log(tab.scrollLeft);
 function Marquee(){ 
 if(tab2.offsetWidth-tab.scrollLeft<=0){
  tab.scrollLeft-=tab1.offsetWidth 
 }  else { 
  tab.scrollLeft++; 
 } 
 } 
 var MyMar=setInterval(Marquee,speed); 
 tab.onmouseover=function() {clearInterval(MyMar)}; 
 tab.onmouseout=function() {MyMar=setInterval(Marquee,speed)}; 
    </script>
 </div>
</body>
</html>

相关文章

  • js实现循环无缝滚动

    原理一(scrollDiv滚动,浮动改变left值) 大的div(bigDiv)包含一个滚动的div(scroll...

  • 无缝向上、向左滚动--间歇性滚动

    无缝滚动原生JS 版 js 部分 无缝滚动 jquery 版 无缝向左滚动 js 部分 间歇性滚动 与 上面无缝滚...

  • JS实现无缝滚动

    首先上一张效果图 原理 在可视区域内,list1向上滚动,在滚动至图2的位置时,达到滚动连接临界点。由于list2...

  • JS实现无缝滚动

    滚动轮播图原理:以本文为例,想要实现视觉上的无缝隙滚动轮播,就需要在第四张图后,再添加第一张和第二张图,因为本文的...

  • js 无缝滚动实现

    前端经常看到图片滚动,理清楚原理就会很简单滚动的原理: 所有的图片用li展示出来,ul设置固定宽度,超出的部分hi...

  • JS实现无缝滚动

    不多说,直接贴代码了

  • js实现-新闻间歇性向上无缝滚动

    参考js实现-新闻间歇性向上无缝滚动 , 实现在vue中新闻列表的无限滚动, 代码如下 assets.html a...

  • JS实现图片的不间断连续滚动

    bug修复版2017.07.11 js替代marquee实现图片无缝滚动可能大家都碰到过,当marquee中滚动的...

  • JS实现文字无缝滚动

    html结构: style样式: JS代码:

  • js实现无缝滚动图

    先说说需求。要制作下图这种滚动视图。轮播图片的src包含在json数据中,对图片数量没有限制。图片的蒙版随着图片滚...

网友评论

      本文标题:js实现循环无缝滚动

      本文链接:https://www.haomeiwen.com/subject/ranuyttx.html