js图片文字无缝滚动

今天记录又一个小特效。上次写了个轮播图,

思路是一个图片列表滚动,滚动到一定距离,把图片列表的第一张图片添加到最后一张。

这次是图片文字无缝滚动。也弥补了marquee不能无缝滚动不足。

html如下:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无缝滚动</title>
   
</head>
<body>

<div id="gd">
    <div id="gdbox">
        <div id="box1">
            星星之所以美丽,是因为它的某一颗上有一朵看不见的花。沙漠之所以美丽,是因为它的某一个地方藏着一口井。丽家园!
        </div>
        <div id="box2"></div>
    </div>
</div>
</body>
</html>

  css:

 <style>

        #gd{700px;height:110px;overflow:hidden;margin-top:5px;margin-bottom:5px;border: 1px solid #ccc}//此处一定要加溢出隐藏。
        #gdbox{float:left;  1000%;height:100px}//滚动列表要大于父盒子。
        #box1,#box2{float:left;}

    </style>

  JavaScript:

<script>
    window.onload=function(){
        var speed=20;
        var tab=document.getElementById("gd");//特别注意这个是获取最外面一层的盒子,就是溢出隐藏的盒子。
        var tab1=document.getElementById("box1");
        var tab2=document.getElementById("box2");
        tab2.innerHTML=tab1.innerHTML; //通过赋值获得tab1的值。内容相当于一份
        function marquee(){
            if(tab2.offsetWidth-tab.scrollLeft<=0)//当tab的移动宽度大于等于demo1的时候,scrollLeft为0,也就是恢复到未移动前的情况,继续移动
            {tab.scrollLeft=0}
            else
            {tab.scrollLeft++;//盒子每次向左边移动一个像素。

            }
        }
        var timer=setInterval(marquee,speed); //定时器
        tab.onmouseover=function(){clearInterval(timer)};
        tab.onmouseout=function(){timer=setInterval(marquee,speed);}
    }
</script>

  懒癌又犯了,下次有空再学点别的内容,再更新一下博客

2018年,12月开始,我要认真写博客啦
原文地址:https://www.cnblogs.com/lw1995/p/7495492.html