gpt4 book ai didi

javascript - 防止 touchmove 事件与 jquery UI 对话框的滚动冲突

转载 作者:行者123 更新时间:2023-11-30 13:10:02 26 4
gpt4 key购买 nike

由于在safari等移动设备浏览器上,当用户拖动屏幕时,整个网站会随着手指移动。所以常见的解决方案是:

addEventListener('touchmove', function(e) { e.preventDefault(); }, true);

这将阻止任何触摸移动事件。但是,由于移动设备上的浏览器没有滚动条,当用户想要滚动 jquery ui 的对话框时,需要允许 touchmove 事件。该语句将阻止该事件。

addEventListener('touchmove', function(e) { 
if (e.target.id != 'dialog' )
e.preventDefault();
return false;
}, true);

然后我添加此语句以允许对话框滚动。但是,此解决方案存在缺陷,因为背景将可拖动并随用户手指再次移动。如何解决这个问题?谢谢。

最佳答案

整天都在处理这个问题并找到了这个解决方案。当你想让它在 ipad/iphone/ipod 上的 safari mobile 上滚动对话框时,你需要使用这个:

if (/iPhone|iPod|iPad/.test(navigator.userAgent)) {
$('iframe').wrap(function () {
var $this = $(this);
return $('<div />').css({
width: $this.attr('width'),
height: $this.attr('height'),
overflow: 'auto',
'-webkit-overflow-scrolling': 'touch'
});
});
}

关于javascript - 防止 touchmove 事件与 jquery UI 对话框的滚动冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14219992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com