Javascript 滚动页面直到某个高度
如何使用javascript滚动页面,直到滚动高度达到预定义的像素数Javascript 滚动页面直到某个高度,javascript,html,scroll,Javascript,Html,Scroll,如何使用javascript滚动页面,直到滚动高度达到预定义的像素数 function pageScroll() { // Next line is pseudocode: if (window.ScrolledHeight != SOME_NUM) window.scrollBy(0,50); } scrolldelay = setTimeout('pageScroll()',100); 应该有一些逻辑检查的东西。您能帮助我,如何获得滚动高度吗?您能在函数之外使
function pageScroll() {
// Next line is pseudocode:
if (window.ScrolledHeight != SOME_NUM)
window.scrollBy(0,50);
}
scrolldelay = setTimeout('pageScroll()',100);
应该有一些逻辑检查的东西。您能帮助我,如何获得滚动高度吗?您能在函数之外使用一个变量,每次运行pageScroll时将值增加50像素,然后检查该值是否等于或大于您要查找的值吗 e、 g
var scrollmount=0;
函数pageScroll(){
滚动窗口(0,50);
总金额+=50;
如果(滚动量<200){
scrolldelay=setTimeout('pageScroll()',100);
}
}
如果您不想使用全局变量,也可以让函数接受您修改的参数。首先,您不应该使用
setTimeout
您应该使用setInterval
。基本上是因为它更好地实现了你的目标,而且就实际时间而言,它更准确。如果你想知道更多关于这个话题的信息,可以用谷歌搜索。但是您需要的是clearInterval
方法。另外,在setTimeout
和setInterval
中使用匿名函数更快
startPageScroll(){
var scrollAmt = 0;
var id=setInterval(function(){
if(scrollAmt</*Whatever your limit is*/){
window.scrollBy(0,50);
scollAmt+=50;
}
else{clearInterval(id);}
},100);
}
这是一个可能会有所帮助的链接。您已经有了有效的答案,但我会添加一点味道,它会滚动,但在到达目标滚动点之前会变慢:
function pageScroll() {
var delta = min(SOME_NUM-window.ScrolledHeight)>>1,50);
if (delta > 0) {
window.scrollBy(0,delta);
setTimeout('pageScroll()',100);
}
}
一个很好的副作用是,无论滚动量是否为50的倍数,滚动量都应该正好达到某个数值。好主意。我会等一会儿,也许有属性指示正确的高度,否则我会将您的帖子标记为答案。setTimeout仅用于示例。代码将在循环中运行。
var scroll;
if(window.pageYOffset){
scroll=window.pageYOffset;
}
else{
scroll=document.body.scrollTop;
}
function pageScroll() {
var delta = min(SOME_NUM-window.ScrolledHeight)>>1,50);
if (delta > 0) {
window.scrollBy(0,delta);
setTimeout('pageScroll()',100);
}
}