demo2.innerHTML=demo1.innerHTML
//demo1.offsetHeight=783 demo2.offsetHeight=773
//demo2.offsetTop=792 scrollTop=752时停止
function Marquee(){
if(demo2.offsetTop-demo.scrollTop<=40)
当它停止的时候,还差40,所以,改成<=40 就可以了。
当scrollTop=752时,它是停止,是因为滚动条已经到底了,不能再滚动了,所以停止了。
但是,
demo1.offsetHeight=783
demo2.offsetHeight=773
这两个数据为什么不一样,我就不太理解了。楼主如果知道为什么的话,麻烦告诉我一下。
(噢,对了,差点忘了,因为楼主原引用的图片,我这里无法显示,于是,我就换了一张图片,但如果是原图片的话,上面三个数据也应该会是不一样的!楼主可以测试一下。)
//保存想要滚动的容器var scrollingBox
var scrollingInterval
//用于记录是否“滚到头”过一次
var reachedBottom=false
//记录第一次滚到头时候的scrollTop
var bottom
function initScrolling()
{
scrollingBox = document.getElementById("prodiv")
//样式设置,与滚动基本无关
scrollingBox.style.height = "600px"
scrollingBox.style.overflow = "hidden"
//滚动
scrollingInterval = setInterval("scrolling()",50)
//鼠标划过停止滚动效果
scrollingBox.onmouseover = over
//鼠标划出回复滚动效果
scrollingBox.onmouseout = out
}
//滚动效果
function scrolling()
{
//开始滚动,origin是原来scrollTop
var origin = scrollingBox.scrollTop++
//如果到头了
if(origin == scrollingBox.scrollTop)
{
//如果是第一次到头
if(!reachedBottom)
{
scrollingBox.innerHTML+=scrollingBox.innerHTML
reachedBottom=true
bottom=origin
}
else
{
//已经到头过,只需回复头接尾的效果
scrollingBox.scrollTop=bottom
}
}
}
function over()
{
clearInterval(scrollingInterval)
}
function out()
{
scrollingInterval = setInterval("scrolling()",50)
}