一个js文字无缝滚动的问题,这段代码滚动的原理到底是什么呀?
<scriptlanguage="javascript">varspeed=30demo2.innerHTML=demo1.innerHTMLfunctionMarque...
<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>
代码里的if判断是什么意思 展开
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>
代码里的if判断是什么意思 展开
2个回答
展开全部
这段代码的核心处理是应用setInterval每speed(30)毫秒执行一次页面更新.
更新的函数是Marquee,通常执行的是demo.scrollTop++,也就是说通常情况下是每30毫秒向下移动一个像素,这样子连续起来就成了动画了. 当动画移动到边界时,执行的时marquee里面的另外一个分支,将动画移动到最初位置.
实现无缝,其实是借用了两个相同的dom块(demo1和demo2),两者同时向下移动,一个移出可视范围多少,另外一个就移入可是范围多少.
更新的函数是Marquee,通常执行的是demo.scrollTop++,也就是说通常情况下是每30毫秒向下移动一个像素,这样子连续起来就成了动画了. 当动画移动到边界时,执行的时marquee里面的另外一个分支,将动画移动到最初位置.
实现无缝,其实是借用了两个相同的dom块(demo1和demo2),两者同时向下移动,一个移出可视范围多少,另外一个就移入可是范围多少.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询