【发布时间】:2013-12-13 07:54:27
【问题描述】:
我正在尝试制作一个自动滚动的 div,当它到达末尾时会自动滚动到顶部。但它不起作用......
function scrollPannel()
{
var pannel = document.getElementById('pannel');
if (typeof scrollPannel.count == 'undefined')
{
scrollPannel.count = 0;
}
else
{
scrollPannel.count += 2;
}
// trouble is here
if ((scrollPannel.count - pannel.scrollHeight) > pannel.clientHeight)
{
scrollPannel.count = 0;
}
pannel.scrollTop = scrollPannel.count;
setTimeout('scrollPannel()', 500);
}
HTML:
<div id='pannel' style="height:200px;overflow:auto" onmouseover="sleepScroll()">
<p>...</p><!-- long text -->
</div>
之后,我需要找到如何在“onmouseover”发生时停止滚动。
编辑:我没有清楚地解释问题。事实上,我尝试过类似的方法:
if (scrollPannel.count > pannel.scrollHeight)
{
scrollPannel.count = 0;
}
问题是 scrollHeight 似乎大于 div 内部文本。因此,返回顶部需要很多时间。
所以我需要一个元素属性,我可以使用它的值与我的计数变量进行比较。但是我不太了解 Javascript,也找不到任何东西。我希望它和我想的一样简单。
【问题讨论】:
-
函数 sleepscroll() 是什么?
-
sleepScroll() 是一个实现的函数,我将使用它来停止在事件“onmouseover”上滚动。就我而言,我认为这将是一个简单的 clearTimeout() 调用。
标签: javascript html dom vertical-scrolling