【问题标题】:jquery scrollTop(x) is not scrolling to target when x is big当 x 很大时,jquery scrollTop(x) 不会滚动到目标
【发布时间】:2011-11-21 16:12:39
【问题描述】:

我对 .scrollTop() 有疑问

我有一个页面在卸载时存储会话中当前的 scrollTop() 位置。 我的目标是,当我返回此页面时,页面会滚动到我在其上的最后一个 scrollTop 位置。

我的 JS 代码很简单:

console.log('=>'+parseInt(scrollto)+' '+parseInt($(window).scrollTop())); 
$(window).scrollTop(scrollto);
console.log('=>'+parseInt(scrollto)+' '+parseInt($(window).scrollTop()));

在我的浏览器控制台中显示:

=> 2500 0
=> 2500 2500

好的,我的页面滚动到最后一个位置。

问题在于scrollto 变量的值很大。 这就是我在控制台中得到的:

=> 12352 0
=> 12352 7683

我不明白为什么它没有在请求的位置滚动

我什至试过这个:

var max_times= 10;

for(var i=0;i<max_times;i++){
console.log('=>'+parseInt(scrollto)+' '+parseInt($(window).scrollTop()));
if (parseInt(scrollto) > parseInt($(window).scrollTop())) 
    $(window).scrollTop(scrollto);
}

结果:

=> 13450 0
=> 13450 7985
=> 13450 7985
=> 13450 7985
...
=> 13450 7985

其他信息:

  • 我在 Chrome 和 Safari 上的结果相同。
  • 我正在谈论的页面包含很多图像,因此需要一些 是时候满载而归了。

非常感谢任何帮助。

谢谢。

【问题讨论】:

  • 图片是否设置了高度?还是页面的总高度会随着图像的加载而增加?

标签: jquery google-chrome position scrolltop


【解决方案1】:

@lalibi 很好地询问图像是否设置了高度,如果您要求滚动到 13450 但当前页面高度小于 13450 像素,那么某些事情将无法正常工作。如果您尝试将 scrollTop 的超时设置为加载所有图像时,它仍然会失败吗?如果您注意到它没有,那么您将不得不以一种方式加载图像,一旦全部加载然后执行 scrollTop 或设置图像高度,以便该页面确切知道它的高度。

【讨论】:

    【解决方案2】:

    好的。

    我找到了一个可行的解决方案。

    谢谢各位的指点,页面的总高度一定要考虑在内。

    我所做的是:

    var timer = setInterval(function(){
        if ((parseInt(scrollto) > parseInt($(window).scrollTop())) && (parseInt($(document).height())>parseInt(scrollto))){
           $(window).scrollTop(scrollto);
           if ($(window).scrollTop()>=scrollto)
               clearInterval(timer);    
        }
    },500);
    
    setTimeout(function(){clearInterval(timer);},10000);
    

    我设置了一个间隔来检查页面的总高度是否足以每 500 毫秒滚动到请求的位置。如果是这种情况,它会滚动。如果位置OK,那么我们清除区间。

    如果这些都不起作用,则间隔10s后清除。

    再次感谢您帮助我解决这个问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多