【问题标题】:jQuery scrollTo plugin jumping to top of page in Chrome but not FirefoxjQuery scrollTo 插件在 Chrome 但不是 Firefox 中跳转到页面顶部
【发布时间】:2011-02-22 17:37:23
【问题描述】:

我搜索了这个,但我认为我的问题的解决方案不起作用。考虑到我过去处理过更复杂的事情,这似乎非常微不足道,但我终其一生都无法弄清楚出了什么问题。

$('.link').click(function(e){
    e.preventDefault();
    $.scrollTo('2000px', 300);
}

此代码在 Chrome 和 Safari 中会在滚动 2000 像素之前跳转到页面顶部。我一直在阅读其他列表,他们有其他事件是问题,但这是我正在处理的测试页面上唯一的 javascript 代码(jQuery 和 scrollTo 包括除外)。

【问题讨论】:

  • 好吧,这似乎是我机器上的 Chrome 和 Safari 的问题。我在其他计算机上尝试了完全相同的代码,两者都进行了全新安装,它们运行良好。不确定问题究竟出在哪里。将卸载并重新安装 Google Chrome 以查看是否有解决方案。
  • 问题是我在 chrome 中安装的恶意扩展。如果有人遇到类似问题,请尝试停用所有扩展程序。呃,一个完全令人沮丧的问题,但至少这是用户(我)的错误。

标签: javascript jquery google-chrome webkit


【解决方案1】:

通过在 Google Chrome 11.0.696.34 beta 中启用“屏幕捕获(Google 提供)-版本:4.0.1”扩展,我能够使用 jQuery 1.5.1 和 jQuery.SCrollTo 版本 1.4.2 复制此错误。

在同样的情况下,只需禁用该扩展程序并刷新页面,该错误就会消失。

【讨论】:

    【解决方案2】:

    您是否尝试过仅使用标准 javascript window.scrollTo(0,'2000px') 来查看其行为方式是否相同?

    【讨论】:

      【解决方案3】:
      1. 我在 chrome 中也遇到了这个问题。
      2. 只要 body 元素没有可见的水平滚动条,并且当​​您调用 jquery.scrollTo(someElement) 时,浏览器就会自行滚动到顶部
      3. 您可以执行以下操作之一

        • 在调用scrollTo() 之前确保有滚动条。有很多方法可以做到这一点。最简单的方法是为 body 元素设置 overflow:scroll
        • 等待 jquery 通过某种方式在 animate()(最终由 scrollTo 调用)代码中解决此问题

      在我的应用程序(没有水平滚动条)中,当我尝试调试 jQuery 的动画代码时,我发现每当 scrollLeft 设置为零时,chrome 中的垂直滚动条就会移动到顶部。 希望这会有所帮助。

      【讨论】:

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