jQuery禁用正文滚动,但允许在iOS设备的模态上滚动

时间:2018-08-09 08:54:31

标签: jquery mobile-safari

我正在寻找停止在iOS移动设备上滚动身体,但允许在模式/移动菜单等上滚动的最佳方法。

我找到了一个只能中途解决的方案。我可以禁用整体滚动,然后只允许在菜单区域滚动,但是该解决方案存在一些问题。

菜单已设置为溢出-y:自动。

1。问题:当菜单中没有滚动条时,“ touchmove”会在后台移动身体。

2。问题:菜单现在具有滚动条,但有时它会移动主体。

我正在使用的代码。

if($(menu).is(':visible')){
          // for android and other devices
            $('html').css('overflow', 'hidden');
          // for Safari
            $('body')[0].addEventListener('touchmove', function(e){e.preventDefault()}, false);
            $('.mobile-menu')[0].addEventListener('touchmove', function(e){e.stopPropagation()}, false);
        }

这是我发现的最好的。有什么办法可以解决此代码的问题?

0 个答案:

没有答案