我正在尝试执行一些 js 代码,现在它们被警报替换,当滚动条从顶部移动到任何其他高度时。
因此,当用户第一次滚动时,“已滚动”警报将触发。如果用户滚动回到顶部,它会重置并触发“回到顶部”的警报。
我尝试使用 scrollTop、scrollHeight 和 clientHeight 执行此操作,但它似乎不会在滚动时触发警报。
每次用户滚动时,我都不会尝试触发警报,只是在第一次滚动时。但如果用户滚动回顶部,它会重置并触发新警报。
因此,如果他们从顶部滚动到 X,则会触发“滚动”警报。如果他们从 X 滚动到 Y,则不会发生任何事情。如果从 X 或 Y 滚动到顶部,则会触发“返回顶部”。然后,如果从顶部滚动到 X 或 Y,它已重置并且警报“滚动”触发(再次)。
这是我的代码:
var body = $('body');
var scrollTop = body.scrollTop;
var difference = body.scrollHeight - body.clientHeight;
var percentScrolled = (scrollTop/difference)*100;
if(percentScrolled > 0){
alert("scrolled!");
}
更新:
由于其中一条评论,我现在有了这个工作,它在滚动回顶部时触发“回到顶部”警报,但在每次滚动时触发“滚动”警报。仅当滚动条从顶部移动到顶部以外的任何其他位置时,如何才能触发“滚动”警报?
这是代码:
window.onscroll = function () {
var doc = document.body,
scrollPosition = doc.scrollTop,
pageSize = (doc.scrollHeight - doc.clientHeight),
percentageScrolled = Math.floor((scrollPosition / pageSize) * 100);
if(percentageScrolled == 0){
alert("back at top");
}
else if(percentageScrolled > 0){
alert("scrolled");
}
};