我正在使用基于iPad的Web应用程序,因此需要防止滚动过度,以使其看起来不像是网页。我目前正在使用它冻结视口并禁用过度滚动:
document.body.addEventListener('touchmove',function(e){
e.preventDefault();
});
这对于禁用过度滚动非常有用,但是我的应用程序具有多个可滚动的div,上面的代码可以防止它们滚动。
我仅针对iOS 5及更高版本,因此避免了像iScroll这样的恶意解决方案。相反,我将此CSS用于可滚动div:
.scrollable {
-webkit-overflow-scrolling: touch;
overflow-y:auto;
}
这在没有文档过度滚动脚本的情况下有效,但不能解决div滚动问题。
如果没有jQuery插件,是否有任何方法可以使用过度滚动修复程序,但可以免除我的$('。scrollable')div?
编辑:
我发现了一个不错的解决方案:
// Disable overscroll / viewport moving on everything but scrollable divs
$('body').on('touchmove', function (e) {
if (!$('.scrollable').has($(e.target)).length) e.preventDefault();
});
滚动经过div的开头或结尾时,视口仍会移动。我也想找到一种方法来禁用它。