在iOS 11中在webview中向下滚动时,固定标题会消失

Ber*_*ova 41 css webview ios ios11

我有一个带有webview的原生iOS应用程序来显示Web内容.我的应用程序中有一个固定的标题,其中包含以下属性:

#header {
    height: 60px;
    background-color: @mainColor;
    color: #ffffff;
    padding: 10px;
    text-align: center;
    position: fixed;
    width: 100%;
    z-index: 1;
}
Run Code Online (Sandbox Code Playgroud)

在我升级到iOS 11之前一切正常.现在当我向下/向上滚动时,标题在滚动期间消失,当滚动完成时,标题再次出现.

这也可以在Xcode 8中重现.

iPa*_*tel 15

我只是编写一些代码,一个接一个地尝试

来自Apple官方说明:

重要:

从iOS 8.0和OS X 10.10开始,使用WKWebView将Web内容添加到您的应用程序.不要使用UIWebView或WebView.

所以你应该尝试一次WKWebView.


Pao*_*gia 12

position: fixed 总是 一个 问题与iOS.似乎在iOS的每个版本中,问题仍然存在.现在,我找不到有关应用程序从iOS 10到11的行为更改的任何内容,您可以考虑将此报告为错误 ; 另一方面,看到遇到这个问题的大多数人以及影响或多或少影响iOS的所有最新版本的事实我建议不要使用position: fixed.

最常见的解决方法是transform: translateZ(0),这不仅适用于iOS并且可以防止"任何可能的闪烁,它还会强制浏览器使用硬件加速来访问GPU以使像素飞行.它也可以在没有-webkit-iOS 9 前缀的情况下工作.

  • 不适合我的情况:(这个元素是位置:相对; (2认同)
  • 显然这个解决方案一直工作到iOS 11,当我找到一个解决方案时,我会更新这个答案.感谢您的反馈 (2认同)

cal*_*lle 6

我在为iOS构建的Cordova项目中遇到了类似的问题,该项目使用了webview.Cordova默认使用UIWebView作为其webview引擎,我尝试了此线程和许多其他人提到的所有可能的修复.最后,我们唯一的解决方案是将webview引擎从UIWebView更改为WKWebView(https://developer.apple.com/documentation/webkit/wkwebview).使用Cordova,使用插件引入WKWebView非常简单https://github.com/apache/cordova-plugin-wkwebview-engine

在介绍WKWebView并处理它导致的一些问题后,我们不再遇到在iOS 11中滚动时闪烁或消失的固定定位元素.


Dil*_*lip 6

我们遇到了类似的问题,并通过以下2个插件得到修复

https://github.com/apache/cordova-plugin-wkwebview-engine https://github.com/TheMattRay/cordova-plugin-wkwebviewxhrfix

第一个插件将默认WebView更改为WKWebView,第二个插件为我们在使用WKWebView时看到的CORS问题提供修复.