iOS Safari –如何禁用过度滚动但允许可滚动的div正常滚动?
我正在使用基于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的开头或结尾时,视口仍会移动。我也想找到一种方法来禁用它。