Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript页面会自动上下滚动_Javascript_Loops_Scroll_Infinite Loop_Infinite Scroll - Fatal编程技术网

Javascript页面会自动上下滚动

Javascript页面会自动上下滚动,javascript,loops,scroll,infinite-loop,infinite-scroll,Javascript,Loops,Scroll,Infinite Loop,Infinite Scroll,我正在努力应对一个超出我技能范围的挑战。我试图让页面在无限循环中上下滚动(非常缓慢)。我让代码循环一次,但我的挑战是让它反复循环。我想听听你的建议 do{ $(文档).ready(函数(){ $('body,html').animate({scrollTop:2650},57820); }); $(文档).ready(函数(){ $('body,html').animate({scrollTop:0},35000); }); } while(true==true)Javascript代码主要是

我正在努力应对一个超出我技能范围的挑战。我试图让页面在无限循环中上下滚动(非常缓慢)。我让代码循环一次,但我的挑战是让它反复循环。我想听听你的建议

do{
$(文档).ready(函数(){
$('body,html').animate({scrollTop:2650},57820);
});
$(文档).ready(函数(){
$('body,html').animate({scrollTop:0},35000);
});
}
while(true==true)Javascript代码主要是。这对您意味着浏览器正在快速运行“转到顶部”和“转到底部”代码。从而使浏览器崩溃。您需要的是等待滚动到底部完成,然后滚动到顶部。这里有一个例子,可以满足您的需要

//获取对html的引用。你在循环中做这件事的方式
//速度很慢,因为每次都必须访问它。
常量main=$('html');
//scrollTop函数
//滚动到顶部
函数scrollTop(){
console.log('滚动到顶部')
animate({scrollTop:0},1000,“linear”,scrollBottom/*这是一个回调,它意味着当我们滚动到顶部时,滚动到底部*/)
}
函数scrollBottom(){
console.log('滚动到底')
animate({scrollTop:document.body.offsetHeight},1000,“linear”,scrollTop/*这是一个回调,它意味着当我们滚动到底部时,滚动到顶部*/)
}
//这就开始了
//再次只运行$(document)。准备一次以提高性能。
//一旦scrollTop完成,它将调用scrollBottom,后者将依次调用scrollTop等等
$(文档).ready(滚动顶部);

Javascript不会等到一个函数完成,所以不能创建这样的循环。但您可以利用jquery.animate的完整功能:

$(文档).ready(向下滚动())//第一次运行函数
函数scrollUp(){
$('body,html')。设置动画({
滚动顶部:0
},35000,“线性”,
向下滚动//我们在顶部,让我们向下滚动
);
返回false;
}
函数scrollDown(){
$('body,html')。设置动画({
scrollTop:$(文档).height()
},57820,“线性”,
向上滚动//向下滚动完成,让我们向上滚动
);
}

下面是此代码的工作示例:

这是一次伟大的尝试,但您可能已经注意到,如果您尝试运行此代码,它将锁定您的浏览器。这就是整个无限循环的过程。因此,当使用<代码> do时……<代码>循环时,应该考虑使用间隔计时器。您可以了解更多信息,它确实锁定了我的浏览器。是的,我想我曾经听说无限循环会引起问题。我将研究这个链接。非常感谢。我跟踪了你提供的链接,它帮助了我很多。不幸的是,后来我遇到了另一个问题,但另一个用户提供的代码解决了这个问题。我很感激你提供了这个链接,因为尽管我的代码并不完美,但它仍然有效,而且是我写的。让我觉得自己越来越棒了。好消息!很乐意帮忙。坚持下去——只是需要练习。玩得开心。这很有效!事实上,这很简单。我很感激你的代码如此干净。我刚刚开始学习javascript,我已经有了基本的想法,但是将该语言应用到像这样的特定事情上仍然是我无法理解的。如果你认为我的答案解决了问题,你能接受吗?谢谢就这么做了!对不起,我是新来的。我不知道接受答案是什么,也不知道打勾是接受答案的方式。我非常感谢你的帮助!谢谢你的回复!