我以前也遇到过类似的问题,并且永远无法真正理解解决方法,所以我最终依赖于 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 像素,但是,用户仍然可以滚动并查看隐藏的内容。想法?