<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="杨欣">
<title>原生js拖拽</title>
<style>
div {
200px;
height: 200px;
background: red;
position: absolute;
}
</style>
</head>
<body>
<div id="div"></div>
<script>
//获取元素
var div = document.getElementById('div');
var x = 0;
var y = 0;
var l = 0;
var t = 0;
var isDown = false;
//鼠标按下事件
div.onmousedown = function (e) {
//获取x坐标和y坐标
x = e.clientX;
y = e.clientY;
//获取左部和顶部的偏移量
l = div.offsetLeft;
t = div.offsetTop;
//开关打开
isDown = true;
//设置样式
div.style.cursor = 'move';
}
//鼠标移动
window.onmousemove = function (e) {
if (isDown == false) {
return;
}
//获取x和y
var nx = e.clientX;
var ny = e.clientY;
//计算移动后的左偏移量和顶部的偏移量
var nl = nx - (x - l);
var nt = ny - (y - t);
div.style.left = nl + 'px';
div.style.top = nt + 'px';
}
//鼠标抬起事件
div.onmouseup = function () {
//开关关闭
isDown = false;
div.style.cursor = 'default';
}
</script>
</body>
</html>