h5拖拽过程中,鼠标两个元素之间会有短暂的禁用样式,要怎么解决?

直接上代码

<!DOCTYPE html> 
<html lang="en"> 
  <head> 
    <meta charset="UTF-8" /> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
    <title>Document</title> 
  </head> 
  <style> 
    #content {
      border: 1px solid;
      width: 500px;
      height: 500px;
      display: flex;
    }
    .left {
      width: 200px;
      border: 10px solid;
    }
    .right {
      flex: 1;
      background: pink;
    }
    .drag {
      border: 1px solid;
      width: 100px;
      height: 100px;
    }
  </style> 
  <body> 
    <div draggable="true" class="drag">drag</div> 
    <div id="content"> 
      <div class="left">left</div> 
      <div class="right">right</div> 
    </div> 
    <script> 
//即使是直接绑定document,也会有相同的问题。
      document.getElementById("content").addEventListener(
        "dragover",
        e => {
          e.preventDefault();
        },
        true 
      );
    </script> 
  </body> 
</html>  

将 drag拖拽到 left和right之间时,可以看到鼠标会有一瞬间的禁用样式,有什么解决办法吗?

我看vscode拖拽过程比较丝滑,但是没找到怎么实现的~

阅读 2.6k
1 个回答

这个是浏览器的默认行为吧,表示这个位置不能进行拖放操作
如果不想要这种效果,可以用脚本自己模拟拖拽,不使用原生api

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏