禁用移动浏览器的滑动返回行为?

3

我正在开发一个功能,让用户可以拖动不同的物品。然而,当他们拖动靠近手机屏幕边缘的物品时,浏览器会返回上一页。有人知道是否能在单个<div>中禁用这个功能吗?如果可以,请告诉我如何操作。


你现在处理哪些鼠标和触摸事件?可能还有另一个需要使用e.preventDefault() - Brad
我尝试了 touchmove 但似乎没有起作用。 - MarksCode
尝试使用所有这些事件:touchmovetouchstarttouchenddragdragenddragenterdragexitdragleavedragoverdragstartdropmouseentermouseleavemousemovemouseoutmouseovergesturestartgesturechangegestureend - Brad
1
你能发布一些HTML吗?div 是否在可滚动的父元素内部? - deblocker
请贴上一些代码,这样我们才能够复现问题。目前这个问题很难回答。 - Alexandre Elshobokshy
2个回答

0

您可以在 div 坐标系内设置可拖动项的位置。如果超出目标 div,则将边界值设置为该值。


0
你可以尝试以下代码来防止这种情况发生。
如果触摸元素是目标div,则阻止操作,否则允许。
HTML:
<div id="tragetDiv"> </div>

 window.addEventListener("touchmove", function(event) {
       let target = event.target;
       if (target.id === "tragetDiv") {
           event.preventDefault();
       }
 });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接