【问题标题】:Scrolling differences on Safari and Chrome (iOS) can you test for them?你能测试一下 Safari 和 Chrome (iOS) 上的滚动差异吗?
【发布时间】:2015-11-25 16:28:16
【问题描述】:
过去(在 iOS 8 之前)Safari 无法在滚动时原生设置动画,您必须停止滚动才能看到动画。 Safari 解决了这个问题,但在 Chrome 上(在 iOS 中运行)访问同一网站时,问题仍然存在。我读到 chrome 还没有在 iOS 上更新这个。我知道它在 Android 上运行良好......所以......有没有办法用modernizr 或其他js 测试这个“功能”?如果不支持滚动动画,我想禁用它们。我已经能够通过检查用户正在使用的浏览器来完成此操作,但如果我可以检查该功能是否可用会更容易。
【问题讨论】:
标签:
javascript
ios
mobile-safari
modernizr
mobile-chrome
【解决方案1】:
在 iOS 8 之前,iOS 会在用户滚动时暂停绘画。对于使用 WKWebView 的应用程序,此行为已停止使用,但对于使用 UIWebView 的浏览器仍然存在 - 这就是为什么您只会看到某些第三方应用程序的旧行为。
一种方法是检测您的页面是否在WKWebView 中加载。另一个问题的answer 建议测试indexedDB 支持。 indexedDB 是 WKWebView 和 UIWebView 之间唯一的 HTML5 功能差异。
the other answer 的 sn-p 建议如何执行此操作:
if (navigator.platform.substr(0,2) === 'iP'){
//iOS (iPhone, iPod or iPad)
if (window.indexedDB) {
//WKWebView
}
}