小编Jef*_*eff的帖子

iOS Safari - 如何禁用过度滚动但允许可滚动的div正常滚动?

我正在开发一个基于iPad的网络应用程序,需要防止过度滚动,以免它看起来像网页.我目前正在使用它来冻结视口并禁用过度滚动:

document.body.addEventListener('touchmove',function(e){
      e.preventDefault();
  });
Run Code Online (Sandbox Code Playgroud)

这可以很好地禁用过度滚动,但我的应用程序有几个可滚动的div,上面的代码阻止它们滚动.

我只针对iOS 5及以上版本,所以我避免使用像iScroll这样的hacky解决方案.相反,我将这个CSS用于我的可滚动div:

.scrollable {
    -webkit-overflow-scrolling: touch;
    overflow-y:auto;
}
Run Code Online (Sandbox Code Playgroud)

这没有文档overscroll脚本,但不解决div滚动问题.

没有jQuery插件,有没有办法使用过度滚动修复但免除我的$('.scrollable')divs?

编辑:

我发现了一些不错的解决方案:

 // Disable overscroll / viewport moving on everything but scrollable divs
 $('body').on('touchmove', function (e) {
         if (!$('.scrollable').has($(e.target)).length) e.preventDefault();
 });
Run Code Online (Sandbox Code Playgroud)

滚动浏览div的开头或结尾时,视口仍会移动.我想找到一种方法来禁用它.

safari jquery mobile-website ipad ios

98
推荐指数
6
解决办法
13万
查看次数

标签 统计

ios ×1

ipad ×1

jquery ×1

mobile-website ×1

safari ×1