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

pre*_*pii 1 html javascript scroll

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

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

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

Del*_*ani 8

我假设你做的是这样的:

<a href="#" onclick="pageScroll();">start</a>
<a href="#" onclick="stopScroll();">stop</a>
Run Code Online (Sandbox Code Playgroud)

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

<a href="#" onclick="pageScroll(); return false;">start</a>
<a href="#" onclick="stopScroll(); return false;">stop</a>
Run Code Online (Sandbox Code Playgroud)

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