我有一个功能,可以按设置的速率无限向下滚动页面,并允许用户自己滚动:
function pageScroll() {
window.scrollBy(0, 1);
scrolldelay = setTimeout(pageScroll, 90);
}
我需要的是一种开启和关闭此动作的方式。我已经尝试了以下代码,但似乎无法正常工作。也许我不太了解scrollBy();
函数(?),但是我真的以为我可以调用pageScroll(true)
来开始滚动,而pageScroll(false)
可以停止滚动它。也许有人可以告诉我我要去哪里错了?
function pageScroll(x) {
if(x == true) {
window.scrollBy(0, 1);
scrolldelay = setTimeout(pageScroll, 90);
} else if(x == false) {
window.scrollBy(0, 0);
}
}
可以这么说,也许有一种使用jQuery scrollTop()
的方法,但是我也想允许用户自己滚动,如果尝试使用scrollTop()
会出现小故障向上滚动后退页面。
答案 0 :(得分:1)
这只是将我的评论移至更详细的答案。
所以您正在做的事情看起来基本上是正确的。基本上,您想要的是某种变量跟踪,该变量跟踪页面是否应该滚动,以及在某些事件上切换滚动。这是一个简单的示例,看起来像这样:
var shouldScroll = true;
function scroll() {
if (!shouldScroll) {
return;
}
window.scrollBy(0, 1);
setTimeout(scroll, 90);
}
scroll();
document.getElementById('buttonId').addEventListener('click', function() {
shouldScroll = !shouldScroll;
scroll();
});
假定您有一个ID为buttonId
的按钮,但除此之外,它实际上只是翻转变量并确保每次单击时页面都在滚动。