我正在开发一个基于iPad的Web应用程序,需要防止用户过度滚动以减少网页的感觉。目前,我正在使用以下代码来冻结视口并禁用过度滚动:
document.body.addEventListener('touchmove',function(e){
e.preventDefault();
});
这段代码很好地禁用了过度滚动,但我的应用程序有几个可滚动的
我只针对iOS 5及以上版本进行操作,因此避免了像iScroll这样的hacky解决方案。相反,我在我的可滚动
.scrollable {
-webkit-overflow-scrolling: touch;
overflow-y:auto;
}
这段代码可以在没有文档overscroll脚本的情况下工作,但无法解决div滚动问题。
没有使用jQuery插件,是否有办法使用overscroll修复但免除我的$('.scrollable') divs?
编辑:
我找到了一个不错的解决方案: // Disable overscroll / viewport moving on everything but scrollable divs
$('body').on('touchmove', function (e) {
if (!$('.scrollable').has($(e.target)).length) e.preventDefault();
});