Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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_Scroll - Fatal编程技术网

JavaScript:是否有类似“;刷新后恢复滚动位置;?有没有办法使用/创建它?

JavaScript:是否有类似“;刷新后恢复滚动位置;?有没有办法使用/创建它?,javascript,scroll,Javascript,Scroll,当您滚动并刷新网页时,滚动条将跳转到刷新前的位置。我有一些与滚动相关的JavaScript,它会在“滚动”事件中修改网页的视觉状态,但在刷新后不会注册“滚动位置恢复”。目前,我通过简单地设置setTimeout,等待一段时间,然后读取滚动位置并运行我的代码来解决这个问题,但这并不正确。有什么更好的方法可以做到这一点吗?如果你需要在刷新后滚动,它会有奇怪的行为,因为当你刷新所有网站时,会从头开始加载。 可以做些什么来将其保存在本地存储位置,并在加载页面后进行滚动: window.onbefore

当您滚动并刷新网页时,滚动条将跳转到刷新前的位置。我有一些与滚动相关的JavaScript,它会在“滚动”事件中修改网页的视觉状态,但在刷新后不会注册“滚动位置恢复”。目前,我通过简单地设置
setTimeout
,等待一段时间,然后读取滚动位置并运行我的代码来解决这个问题,但这并不正确。有什么更好的方法可以做到这一点吗?

如果你需要在刷新后滚动,它会有奇怪的行为,因为当你刷新所有网站时,会从头开始加载。 可以做些什么来将其保存在本地存储位置,并在加载页面后进行滚动:

 window.onbeforeunload = function() {
    localStorage.setItem('position',window.pageYOffset);
}


    $(window).on('load', function(){

         window.scrollTo(0,localStorage.getItem('position')||0);
});

如果你需要在刷新后滚动其奇怪的行为,因为当你刷新所有网站时,从零开始加载。 可以做些什么来将其保存在本地存储位置,并在加载页面后进行滚动:

 window.onbeforeunload = function() {
    localStorage.setItem('position',window.pageYOffset);
}


    $(window).on('load', function(){

         window.scrollTo(0,localStorage.getItem('position')||0);
});

如果我说得不清楚,我很抱歉。我不想滚动,我想运行我自己的JS代码,这取决于当前的滚动位置。问题在于刷新后,滚动位置最初为0。然后它跳到刷新之前的位置。网站是相当重的JS,所以这个跳跃不是瞬间的,它需要几分之一秒的时间。因为网站的视觉效果取决于滚动位置-我想在这个“跳跃”事件中更新它们,但我不知道如何捕捉它,除非等待固定的时间,希望它同时发生。如果你想收听滚动事件,那么:>window.onscroll=function(){myFunction()};或者第二个选项窗口。addEventListener('scroll',function(){console.log('scrolling');});此事件不会在此“滚动位置恢复”上触发。它只会在我手动滚动时触发,但不会在页面从刷新操作之前跳到滚动位置时触发。如果我不清楚地说明了这一点,我非常抱歉。我不想滚动,我想运行我自己的JS代码,这取决于当前的滚动位置。问题在于刷新后,滚动位置最初为0。然后它跳到刷新之前的位置。网站是相当重的JS,所以这个跳跃不是瞬间的,它需要几分之一秒的时间。因为网站的视觉效果取决于滚动位置-我想在这个“跳跃”事件中更新它们,但我不知道如何捕捉它,除非等待固定的时间,希望它同时发生。如果你想收听滚动事件,那么:>window.onscroll=function(){myFunction()};或者第二个选项窗口。addEventListener('scroll',function(){console.log('scrolling');});此事件不会在此“滚动位置恢复”上触发。它仅在我手动滚动时触发,但在页面从刷新操作之前跳到滚动位置时不会触发。