javascript实现无缝上下滚动(转)

js实现上下无缝滚动的原理是这样的:

1、首先给容器设定高度或宽度,然后overflow:hidden; 
2、容器高度设定后,内容超出则被隐藏。
3、改变容器的scrollTop(上下滚动)属性的值,让内容上下移动一个节点的位置(滚动的原理); 
4、到滚动的高度scrollTop大于或等于要滚动节点的高度时,设置scrollTop=0,并把把子节点树中的第一个移动到最后,重新开始滚动,无间断循环滚动效果就出现了。 

代码如下:

 

    1. <divid="colee"style="overflow:hidden;height:100px;width:410px;border:1px solid red;">
    2. <divid="colee1">
    3. <p>php</p>
    4. <p>java</p>
    5. <p>ruby</p>
    6. <p>python</p>
    7. <p>www.phpddt.com</p>
    8. </div>
    9. <divid="colee2"></div>
    10. </div>
    11. <script>
    12. //速度设置
    13. var speed=1;
    14. var colee2=document.getElementById("colee2");
    15. var colee1=document.getElementById("colee1");
    16. var colee=document.getElementById("colee");
    17. colee2.innerHTML=colee1.innerHTML;//克隆colee1为colee2
    18. functionMarquee1(){
    19. //当滚动至colee1与colee2交界时
    20. if(colee2.offsetTop-colee.scrollTop<=0){
    21. colee.scrollTop-=colee1.offsetHeight;//colee跳到最顶端
    22. }else{
    23. colee.scrollTop++
    24. }
    25. }
    26. varMyMar1=setInterval(Marquee1,speed)//设置定时器
    27. //鼠标移上时清除定时器达到滚动停止的目的
    28. colee.onmouseover=function(){clearInterval(MyMar1)}
    29. //鼠标移开时重设定时器
    30. colee.onmouseout=function(){MyMar1=setInterval(Marquee1,speed)}
    31. </script>
posted @ 2013-08-09 15:58  幻星宇  阅读(330)  评论(0编辑  收藏  举报