我正在开发一个基于 iPad 的网络应用程序,需要防止过度滚动,使它看起来不像一个网页。我目前正在使用这个来冻结视图窗口和禁用超滚动:
document.body.addEventListener('touchmove',function(e){
e.preventDefault();
});
这个工程伟大的禁用超滚动,但我的应用程序有几个可滚动的 div,和 上面的代码阻止他们滚动 。
我的目标是 iOS5及以上版本,所以我避免使用像 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 的开始或结束时,视图仍在移动。我也想找个办法把它关掉。