我以前一直在使用 iScroll 插件,但想放弃它以适应本机行为。
最初的实现是使用
webkit-overflow-scrolling: auto;
但是我将其更新为...
webkit-overflow-scrolling: touch
..启用触摸滚动上的运动/惯性。
问题是导航中包含的列表项在滚动时完全消失,只有在势头停止后才会返回。
可以在这里看到一个例子
我过去也遇到过同样的问题,如果您需要使用定位元素,请尝试添加-webkit-transform: translateZ(0);
到元素或容器中。此属性通常会强制浏览器使用硬件加速,并且借助额外的功能,您的图像很可能不会消失。无论如何,它对我有用。
这里也有更多有用的东西:http: //www.html5rocks.com/en/tutorials/speed/html5/
我们将其追踪到具有 position:relative 或 position:absolute 的元素。在我们删除它们之后,项目将在滚动时显示。
就像 Mark Napthine 所说,添加以下 css 定义:
-webkit-transform: translateZ(0);
确实应该强制渲染。诀窍是将它放在溢出容器内的每个未渲染元素上。在我的情况下,它是包含在具有 def 的 div 中的图像的无序列表
-webkit-overflow-scrolling: touch;
我将上面的“转换”定义放在包装图像的 li 标签上,它立即解决了问题。希望这可以帮助...
这也是我遇到的一个错误 - 这个问题似乎与同一个问题有关: CSS3 property webkit-overflow-scrolling:touch ERROR
那里 user1012566 建议它与滚动内元素的位置属性有关(静态工作,没有其他工作),尽管我对此有不同的结果。
另一位用户说他们已经在 bugreport.apple.com 网站上报告了它,但报告的错误在那里并不公开,所以我们其他人不可能看到官方回复(如果有的话)或跟踪进度。
这个错误在 iFrame 中似乎更糟。我创建了一个 JSFIDDLE 来演示它(使用 iOS 5.0.1 设备打开http://jsfiddle.net/KMayN/9/)并向 Apple 发送了一个错误报告。很好奇:如果你滚动,你会看到一个空白(未渲染)的内容......但是如果你然后缩放,内容就会出现!等等...如果他们回复我,我会及时通知您。我尝试了所有方法(带/不带 div 容器的可滚动 iFrame、带/不带滚动的容器等...),根本没有办法:我们必须等待 Apple 修复错误。
-webkit-transform: translate3d(0, 0, 0);