我有一个带有固定高度的div的HTML页面,它应该是可滚动的(仅垂直方向)。在iOS 5中,可以通过以下方式实现:
overflow-y: auto;
-webkit-overflow-scrolling: touch;
包含一个大约有10个项目的无序列表。
滚动起来没问题,但有时候只有当我用手指斜向或者水平方向滑动时才会滚动,而不是应该垂直方向滚动。
我想知道是否有人遇到过这个问题。我不想认为这是iOS5中的一个bug,但我也想不出自己哪里做错了,因为大部分时间都可以正常工作。
我有一个带有固定高度的div的HTML页面,它应该是可滚动的(仅垂直方向)。在iOS 5中,可以通过以下方式实现:
overflow-y: auto;
-webkit-overflow-scrolling: touch;
我曾经遇到过同样的问题。问题最终是由于我的网站使用了两个零尺寸的 iframe 来追踪历史更改和加载脚本所致。移除这些内容可以修复该问题。我已向苹果公司报告了此问题,并正在等待他们的回复。
请检查您的页面上是否存在任何 iframe,它们可能是问题的原因。
iframe
解决了问题。您,先生,真是太棒了! - Dan Abramov我找到了一个简单的解决方案,但需要使用Javascript...
我在通过Ajax加载可滚动节点并使用js追加它们时遇到了这个问题。
我发现使用js重置-webkit-overflow-scrolling属性可以解决问题。
Javascript代码:
var myDiv = $('.myDiv');
myDiv.css('-webkit-overflow-scrolling','auto');
function fn(){
myDiv.css('-webkit-overflow-scrolling','touch');
}
setTimeout(fn,500);
很遗憾我们必须调用setTimeout
方法,但这是我能想到的唯一方式...
编辑:注意display:none
body {
-webkit-transform: translate3d(0, 0, 0);
}
$(tinymce.activeEditor.getBody()).css('-webkit-transform', translate3d(0, 0, 0));
我在iOS 5.1.1中遇到了同样的问题,原因是一个带有position: fixed
伪元素::after
,这个伪元素位于一个包含可滚动列表的元素上,导致出现“错误的滚动轴”行为。 详细信息请查看此处。