• js平滑循环滚动,广告图片文字…


    css:

    #demo {
     background: #FFF;
     overflow:hidden;
     border: 1px dashed #CCC;
     width: 1280px;
     height:200px;
     }
     #demo img {
     border: 3px solid #F2F2F2;
     }
     #indemo {
     float: left;
     width: 800%;
     }
     #demo1 {
     float: left;
     }
     #demo2 {
     float: left;
     }

    html:

    //内容根据需要自行更换

    <div id="demo">
    <div id="indemo">
    <div id="demo1">
    <a href="#"><img src="banner.jpg" border="0" /></a>
    <a href="#"><img src="banner2.jpg" border="0" /></a>
    </div>
    <div id="demo2"></div>
    </div>
    </div>

    js:

    <script>
    var speed=10;
    var tab=document.getElementById("demo");
    var tab1=document.getElementById("demo1");
    var tab2=document.getElementById("demo2");
    tab2.innerHTML=tab1.innerHTML;
    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>

    js补充:循环一轮后停止循环

    if (tab2.offsetWidth - tab.scrollLeft >= 0)
                                            tab.scrollLeft++;
                                    else if (tab.scrollLeft - tab2.offsetWidth ==0) {     
                                            tab.scrollLeft -= tab1.offsetWidth;
                                    }

    这里要注意的是:

    scrollLeft代表页面利用滚动条滚动到右侧时,隐藏在滚动条左侧的页面的宽度。

    offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变。

    setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。

    明白了这个具体的实现就好理解了。

    原理:首先将需要滚动的内容复制一份。当右侧的div显示的内容与左侧影藏的内容宽度相同时将父容器左侧影藏的内容显示出来,这样就实现了将左侧影藏的内容显示出来同时将右侧内容重新隐藏。如果右侧内容显示的部分少于左侧影藏的内容就继续讲父容器想左侧移动,实现隐藏。其中有一点需要注意的是,由于这里是将两张图片同时放入左侧,当右侧显示了一半时会将左侧影藏的完全显示出来,又因为右侧显示的内容与左侧的左边内容相同所以实现了循环滚动的效果。

    这样平滑的滚动就实现了。

    参考原文:https://www.jb51.net/article/83623.htm

  • 相关阅读:
    电容的用法:去耦、旁路、滤波等
    成为出色工程师的十大要素
    常用三极管的区别 9012 9013 9014 9015 8550 8050
    照明的几个光学概念
    PCB元件封装
    为什么诈骗短信看上去那么弱智
    摄像·镜头
    LED家居照明
    光色的应用与照度范围
    PowerPCB(PADS)常见问题全集
  • 原文地址:https://www.cnblogs.com/Utopia-in-reality/p/14184250.html
Copyright © 2020-2023  润新知