【问题标题】:Iscroll mousewheel scrolling works slow in firefox than Google ChromeIscroll 鼠标滚轮滚动在 Firefox 中的运行速度比 Google Chrome 慢
【发布时间】:2014-06-12 05:17:20
【问题描述】:

请查看此示例链接: http://lab.cubiq.org/iscroll5/demos/probe/

如果我在 chrome 中运行上面的示例页面并滚动鼠标滚轮,页面每次上升 100 像素。您可以看到打印了 Y 位置。如果我在 Firefox 26.0 上运行相同的页面并滚动鼠标滚轮,则页面每次上升 3px。您可以看到该页面在 Firefox 中非常缓慢。有什么办法可以修复它们吗?

【问题讨论】:

  • 当您使用 javascript 滚动时,我认为问题在于您的 javascript
  • 我正在使用 iscroll v5.0 插件进行时尚滚动。 iscroll v4.0 在两个浏览器中都能正常工作。
  • 我看到了这个:function updatePosition () { position.innerHTML = this.y>>0; >> 应该是 > 这可能是问题
  • 请尝试在 Firefox 中通过鼠标滚轮滚动。它滚动非常缓慢。不知道为什么?
  • wheel 的 delta 值在每个浏览器和操作系统中实现的方式非常不同,其中一些是事件反转的,一些是加速的,不幸的是,这完全取决于平台。这是当 W3C 中没有某些“标准”时发生的情况之一,并且所有供应商都为所欲为,因此出现了不一致。

标签: javascript jquery iscroll


【解决方案1】:

这是 iscrolljs 库的问题,正如 8 天前在 iscroll 的 github 站点上报告的那样。请参考:https://github.com/cubiq/iscroll/issues/577

如果您在 Firefox 上调试代码,您会看到每次滚动事件发生时 deltaY 仅调整 -3。这与 chrome 不同,它在滚动时具有非常大的 deltaY 调整。

我建议等到提供补丁后。如果您的需求很紧急,那么我建议您使用旧版本,直到修复可用为止。

【讨论】:

    【解决方案2】:

    由于我没有恢复到旧版本的选项,我查看了 Metalskin 提到的 GitHub 问题,并看到了一个名为“justnorris”的海报的临时修复。

    他直接在iscroll-probe.js文件的第1055-1057行修改了_wheel方法,如下:

        if ( 'deltaX' in e ) {
            var multiply = ( e.deltaMode === 1 ) ? this.options.mouseWheelSpeed : 1;
            wheelDeltaX = -e.deltaX * multiply;
            wheelDeltaY = -e.deltaY * multiply;
        } 
    

    来源:https://github.com/cubiq/iscroll/issues/577#issuecomment-33715370

    在 Firefox 中对您的页面执行 Ctrl+F5(清除缓存),它现在应该可以正常滚动了。

    注意:这是一个临时的工作修复。从今天开始,在 Firefox 27.0.1、Windows 8 上为我工作。

    【讨论】:

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