22

我在 Nexus 7 平板电脑上更新到最新版本的 Android 版 Chrome 并...

-webkit-overflow-scrolling: touch

...不再起作用。此外,以下计算结果为 false:

!!('WebkitOverflowScrolling' in document.documentElement.style)

是否从最新版本的 Android 版 Chrome 中删除了对溢出滚动的支持?是否有我可以在最新版本中使用的等效或类似的替代动量滚动机制(不是 iScroll 等)?

同样,我在设备上的 Play 商店中搜索了 Chrome Beta,但它没有出现在搜索结果中。也许 Nexus 7 平板电脑不提供测试版?

非常感谢您对此事的任何帮助。谷歌似乎已经从他们的浏览器中删除了这个功能,这非常令人沮丧......

编辑:

详细版本信息:

运行 Android 版本 4.2.2 的 Nexus 7 平板电脑

-webkit-overflow-scrolling: touch;

!!('WebkitOverflowScrolling' in document.documentElement.style)
  • 在 Chrome 版本 18.0.1025469 上工作并评估为 true
  • 在 Chrome 版本 26.0.1410.58 上不起作用并评估为 false
4

4 回答 4

18

尝试添加z-index: 0到元素overflow: scroll以创建一个堆栈上下文,它为 Chrome 提供使用快速滚动代码路径的提示。

背景:

更新到最新版本的 Android 版 Chrome 后,我目前遇到了这个问题。这也让我更加复杂的是,由于这一变化,当前对该功能的Modernizr 测试现在返回 false,因此我的 CSS 样式没有被应用。

挖掘我发现了另一个讨论溢出滚动触摸支持的问题:

天人在调试 162363 时观察到 -webkit-overflow-touch 是一个继承属性。因此,z-index: 0使用该属性设置所有非隐藏元素的行为会在其下方创建层叠上下文。(此行为,在 ENABLE_ACCELERATED_OVERFLOW_SCROLLING 之后,目前仅在 Android 上启用。) 明显的解决方法是z-index: 0仅设置“溢出:滚动”元素。

因此,如果您遇到滚动无法按预期工作的问题,那么似乎可以z-index: 0使用 overflow: scroll 添加到元素中,那么这可能会有所帮助。然而,这对我不起作用,尽管滚动部分有效(在我修改了 Modernizr css-overflow-scrolling 测试以针对此版本的 Chrome 返回 true 之后)滚动的动量效应不存在。

于 2013-05-06T23:10:49.400 回答
8

从这个 URL = https://code.google.com/p/chromium/issues/detail?id=175670&q=overflow-scrolling&colspec=ID%20Pri%20M%20Iteration%20ReleaseBlock%20Cr%20Status%20Owner%20Summary%20OS% 20修改

' 不,我认为这确实是由 172481 触发的。我们删除了 -webkit-overflow-scrolling,希望不再需要它,因为我们会在需要时自动选择快速滚动。问题是它没有在这里发生。

您提到的那些 SP 更改可能不会影响此问题,因为它们不会出现在非公司帐户上,对吗?我认为 corp 一切正常,但我会检查一下。'

于 2013-04-09T16:29:01.653 回答
0

一个对我有用的肮脏解决方案(需要 Hammer js):

  Hammer($('body')[0]).on("dragup", function(ev) {
            window.scrollBy(0,ev.gesture.distance);
        });
         Hammer($('body')[0]).on("dragdown", function(ev) {
            window.scrollBy(0,-ev.gesture.distance);
        });
于 2014-01-28T06:27:07.957 回答
-1

我们在 Android(平板电脑和移动设备)上的 Chrome 40.0 上遇到了滚动问题,我们仅使用 css 解决方案进行了修复。也许它不干净但对我们有用:

    @media screen and (max-width: 1024px)
html, body {
    z-index: 0 !important;
    overflow: scroll !important;
    }
}
于 2015-01-27T10:29:52.633 回答