【发布时间】:2012-10-04 20:04:55
【问题描述】:
我以前也遇到过类似的问题,但一直无法真正理解解决方法,所以我最终依赖于 iScroll 之类的插件。这是一个如此简单的任务,我拒绝为它包含一个插件——我想要的是防止 iOS 中的水平滚动。这包括可能在页面上但不可见的任何内容的橡皮筋效果。
据我了解,我需要先完全禁用橡皮筋,然后将触摸滚动应用到容器元素(我给它的 id 为“touch”)。不确定这是否是正确的方法?
$(document).bind('touchmove', function(e) {
if (!e.target == '#touch') {
e.preventDefault();
}
});
#touch 的样式
-webkit-overflow-scrolling: touch;
overflow: hidden;
height: 100%;
@media only screen and (max-width: 768px) {
width: 768px;
}
这不会阻止水平宽度保持在 728 像素,但用户仍然可以滚动并查看隐藏的内容。想法?
【问题讨论】:
-
您可以为此使用媒体查询 ->
<meta name="viewport" content="width=device-width" />这会将页面的宽度锁定为与设备相同的宽度,从而防止水平滚动。这对你有用吗? -
抱歉,我不能使用视口,因为它会缩小太多(使用媒体查询来专门设置 iOS 设备的内容大小)。
-
当。那我就没主意了。对不起:(
-
Np,感谢您的调查。为什么要这么难?我一直对开发 iOS 兼容性存在多少问题感到惊讶。
标签: javascript html ios css horizontal-scrolling