自动滚动:停止跳转到页面顶部

时间:2012-04-13 11:13:08

标签: javascript html scroll

我有一个页面,用户点击一个链接开始自动向下滚动页面以方便阅读。用户单击以停止滚动的另一个链接。前者工作得很好,但后者使页面在单击时跳回到顶部,而不是停止在页面上的那个位置滚动。有什么想法吗?

function pageScroll() {
    window.scrollBy(0,1); // horizontal and vertical scroll increments
    scrolldelay = setTimeout('pageScroll()',50); // scrolls every 100 milliseconds
}
function stopScroll() {
    clearTimeout(scrolldelay);
}

我尝试将return false;添加到我在另一篇文章中阅读的内容中的第二个函数,但它没有帮助。我无论如何都不完全理解返回的用法。谢谢你的帮助。

1 个答案:

答案 0 :(得分:8)

我认为你正在做这样的事情:

<a href="#" onclick="pageScroll();">start</a>
<a href="#" onclick="stopScroll();">stop</a>

最快的解决方法是从onclick事件处理程序返回false,如下所示:

<a href="#" onclick="pageScroll(); return false;">start</a>
<a href="#" onclick="stopScroll(); return false;">stop</a>

这个想法是阻止浏览器执行事件的默认操作(在这种情况下,转到#,滚动到页面顶部)。现在,更现代的方法是绑定事件处理函数,然后在其中使用e.preventDefault(),但return false;仍适用于旧式事件属性。