当滚动条从顶部移动到任何其他高度时,我正在尝试执行一些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");
}
};
发布于 2013-04-06 20:43:15
使用javascript自动返回顶部的例子,在用户滚动x%之后。正如noidea3p5所问的,你到底想做什么?
var AllowedPercentageToScroll = 20;
window.onscroll = function () {
var doc = document.body,
scrollPosition = doc.scrollTop,
pageSize = (doc.scrollHeight - doc.clientHeight),
percentageScrolled = Math.floor((scrollPosition / pageSize) * 100);
if(percentageScrolled > AllowedPercentageToScroll){
window.scrollTo(0,0); // back to top
}
else if(percentageScrolled > 0){ // if user starts to scroll it will trigger
//do whatever you like, dont recommend alert though
}
};
编辑:在顶部显示状态,并在开始滚动时显示滚动活动。
window.onscroll = function () {
var doc = document.body,
scrollPosition = doc.scrollTop,
pageSize = (doc.scrollHeight - doc.clientHeight),
percentageScrolled = Math.floor((scrollPosition / pageSize) * 100);
if(percentageScrolled == 0){
document.getElementById("status").innerHTML = "Your at the top";
}
else if(percentageScrolled > 1){
document.getElementById("status").innerHTML = percentageScrolled + "%";
}
};
</script>
<body>
<div style="width: 100%; position: fixed; top:0px; background-color:#c0c0c0;">
Scroll Position: <span id="status">0%</span>
</div>
发布于 2013-04-06 19:55:54
不确定你想要做什么,但听起来你可能想要某种标志:
var body = $('body');
var scrollTop = body.scrollTop;
var difference = body.scrollHeight - body.clientHeight;
var percentScrolled = (scrollTop/difference)*100;
if(percentScrolled > 0 && this.leftzero === undefined){
this.leftzero = true;
alert("scrolled!");
}
https://stackoverflow.com/questions/15855100
复制相似问题