1

我有一个页面,用户单击一个链接开始自动向下滚动页面以便于阅读。用户单击另一个链接以停止滚动。前者完美运行,但后者使页面在单击时跳回顶部,而不是在页面上的该位置停止滚动。有任何想法吗?

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;从我在另一篇文章中读到的东西添加到第二个函数,但它没有帮助。无论如何,我并不完全理解 return 的使用。谢谢你的帮助。

4

1 回答 1

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;仍然适用于旧式事件属性。

于 2012-04-13T11:17:32.833 回答