适用于Android的Chrome浏览器不再支持-webkit-overflow-scrolling?还有其他选择吗?

时间:2013-04-09 15:46:08

标签: android google-chrome webkit scroll overflow

我在Nexus 7平板电脑上更新到最新版Chrome for Android,并且......

-webkit-overflow-scrolling: touch

......不再有效。此外,以下评估为false:

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

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

同样,我在设备上的Play商店中搜索了Chrome测试版,但搜索结果中没有显示。也许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 个答案:

答案 0 :(得分:17)

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

<强>背景

我目前在更新到最新版Chrome for Android后遇到此问题。由于此更改,此功能的current Modernizr test现在返回false,因此我的CSS样式未应用。

我四处寻找另一个issue,讨论了对溢出滚动触摸的支持:

  

Tien-Ren在调试162363时观察到-webkit-overflow-touch   是一个继承的财产。所以将z-index: 0设置为all的行为   具有该属性的非隐藏元素会创建一个堆叠级联   它下面的背景。 (此行为落后于此   ENABLE_ACCELERATED_OVERFLOW_SCROLLING,目前仅在启用时启用   Android。)明显的解决方法是仅设置z-index: 0   “溢出:滚动”元素。

所以看起来如果你遇到滚动问题没有按预期工作,那么将z-index: 0添加到带溢出的元素:滚动然后这可能会有所帮助。然而这对我来说不起作用,虽然滚动部分有效(在我修改了Modernizr css-overflow-scrolling测试后,对于这个版本的Chrome返回true),滚动的动量效果不存在。

答案 1 :(得分:8)

从此网址= https://code.google.com/p/chromium/issues/detail?id=175670&q=overflow-scrolling&colspec=ID%20Pri%20M%20Iteration%20ReleaseBlock%20Cr%20Status%20Owner%20Summary%20OS%20Modified

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

您提到的SP更改可能不会影响此问题,因为它们不会显示在非公司帐户上,对吧?我认为一切都很好,但我会检查。 “

答案 2 :(得分: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);
        });

答案 3 :(得分:-1)

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

    @media screen and (max-width: 1024px)
html, body {
    z-index: 0 !important;
    overflow: scroll !important;
    }
}