<div id=demo style="overflow:hidden; width:128px; height:300px;">
<div id=demo1>
                <ul>
                
                <li>图片连续循环滚动代码(向上)</li>
                <li>图片连续循环滚动代码(向上)</li>
                <li>图片连续循环滚动代码(向上)</li>
                <li>图片连续循环滚动代码(向上)</li>
                <li>图片连续循环滚动代码(向上)</li>
                <li>图片连续循环滚动代码(向上)</li>
                <li>图片连续循环滚动代码(向上)</li>
                <li>图片连续循环滚动代码(向上)</li>
                <li>图片连续循环滚动代码(向上)</li>
                <li>图片连续循环滚动代码(向上)</li>
                <li>图片连续循环滚动代码(向上)</li>
                
                </ul>
</div>
<div id=demo2></div>
</div>
<script language="javascript">
var speed=30
demo2.innerHTML=demo1.innerHTML
function Marquee(){
if(demo2.offsetTop-demo.scrollTop<=0)
demo.scrollTop-=demo1.offsetHeight
else{
demo.scrollTop++
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>这段代码 function Marquee(){
if(demo2.offsetTop-demo.scrollTop<=0)
demo.scrollTop-=demo1.offsetHeight
else{
demo.scrollTop++
}
} 看不明白,解释一下,谢谢。

解决方案 »

  1.   

    程序稍微改动一下, 好读一点.
    function Marquee(){
    if(demo2.offsetTop < demo.scrollTop) {
        //到预定位置了, 固定位置
        demo.scrollTop = demo1.offsetHeight - demo.scrollTop
    } else{
        //没到预定位置, 继续滚动
        demo.scrollTop++
    }
      

  2.   

    demo.onmouseover=function() {clearInterval(MyMar)} // 鼠标放上去,停止滚动
    demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)} //鼠标离开,继续滚动
    // 下面是滚动算法
    // demo1和demo2一起实现滚动算法
    function Marquee(){
    if(demo2.offsetTop-demo.scrollTop<=0) // 如果滚动到demo2,继续从demo1开始滚
    demo.scrollTop-=demo1.offsetHeight
    else{ //如果当前还没滚动到demo1,继续滚动
    demo.scrollTop++; 
    }