我正在寻找停止在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);
}
这是我发现的最好的。有什么办法可以解决此代码的问题?