我有一个页面,用户点击一个链接开始自动向下滚动页面以方便阅读。用户单击以停止滚动的另一个链接。前者工作得很好,但后者使页面在单击时跳回到顶部,而不是停止在页面上的那个位置滚动。有什么想法吗?
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;
添加到我在另一篇文章中阅读的内容中的第二个函数,但它没有帮助。我无论如何都不完全理解返回的用法。谢谢你的帮助。
答案 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;
仍适用于旧式事件属性。