【问题标题】:$(window).resize resets scroll position$(window).resize 重置滚动位置
【发布时间】:2011-11-28 23:09:19
【问题描述】:

以下代码不是我的,它来自一个名为 Blueberry 的 jQuery 插件。

https://github.com/marktuk/Blueberry

我对代码的问题是当

//bind setsize function to window resize event
$(window).resize(function(){
    setsize();
});

执行它会重置滚动位置,迫使用户浏览器返回顶部。

我认为这个问题只存在于 OSX 的 Chrome 上。

我还应该注意,即使窗口没有调整大小并且它发生在超时触发后,它也会发生。

如果我取消注释 setsize() 它仍然会发生,如果我删除 $(window).resize 它会停止...

有人知道为什么会发生这种情况以及是否有解决问题的方法吗?

如果有人也有解决方案,那么在 Blueberry 的 Github 页面上存在问题,因此您可以发送带有修复程序的 Pull Request。

编辑:

按照这里的要求设置大小函数,但请注意,我可以取消注释设置大小函数,它仍然会改变滚动位置。

var setsize = function(){
   sliderWidth = $('.slides', obj).width();
   cropHeight = Math.floor(((sliderWidth/imgRatio)/o.lineheight))*o.lineheight;
   $('.slides', obj).css({height: cropHeight});
};

【问题讨论】:

  • 您需要提供setsize的来源。
  • 我无法在 OSX Chrome 中的blackberry's demo 中重现该问题,您也可以使用它吗? @zzzzBov,你可以在他们的github看到代码
  • @scumah ahhh 这很有趣,必须先看一下代码才能弄清楚发生了什么......

标签: javascript jquery window-resize


【解决方案1】:

所以最终解决了我的问题,这是因为我在元素中设置了高度。

现在为什么它会导致 $(window).resize 跳回页面顶部...我不知道!

如果有人能解决它会很棒。

【讨论】:

    猜你喜欢
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    • 1970-01-01
    相关资源
    最近更新 更多