原生js实现元素的拖拽

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
<style>
#box {
  width: 50px;
  height: 50px;
  border: 10px solid #666;
  position: fixed;
  border-radius: 50%;
}
</style>
</head>
<body>
  <div id='box'></div>
<script>
var box = document.getElementById('box')
box.onmousedown = function(ev) {
  var disX = ev.clientX - box.offsetLeft
  var disY = ev.clientY - box.offsetTop

  document.onmousemove = function(ev) {
    var left = ev.clientX - disX
    var top = ev.clientY - disY
    if (left < 0) {
      left = 0
    }
    if (top < 0) {
      top = 0
    }
    box.style.left = left + 'px'
    box.style.top = top + 'px'
  }
  document.onmouseup = function() {
    document.onmousemove = null;
    document.onmouseup = null
  }
}
<script>
</body>
</html>

demo地址

要点1:css 必须设置position
要点2:鼠标事件的应用
要点3:鼠标弹起,事件清空

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容