原生js实现元素的拖拽

2018-06-03  本文已影响0人  zy懒人漫游
<!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:鼠标弹起,事件清空

上一篇 下一篇

猜你喜欢

热点阅读