<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
margin:0;
padding:0;
}
div{
width: 100px;
height: 100px;
background: red;
position: absolute;
left:100px;
top:100px;
}
</style>
</head>
<body>
<div></div>
</body>
<script src="../../jquery.js"></script>
<script>
//获取位置和偏移量
//$("div").offset();
//$("div").offset({"top":"20px","left":"20px"});
//获取鼠标点击的位置
$("div").mousedown(fn);
function fn(e){
var e = e||window.event;
//获得鼠标点击的位置
var x = e.pageX;
var y = e.pageY;
// console.log(x,y);
var l = $("div").offset().left;
var t = $("div").offset().top;
// console.log(l,t)
//获得按下时候距离左上角的位置
x1 = x-l;
y1 = y-t;
// console.log(x1,y1);
$(document).mousemove(fn1);
}
function fn1(e){
var e = e||window.event;
//获得鼠标点击的位置
var x = e.pageX;
var y = e.pageY;
// console.log(x,y);
// 此刻鼠标点击的位置减去点击位置距离左上角的位置,就是拖拽之后为div设置的top,left值
var l1 = x-x1+"px";
var t1 = y-y1+"px";
// console.log(l1,t1);
//为div设置top值和left值
$("div").css("top",t1);
$("div").css("left",l1);
}
//删除指定事件
$(document).mouseup(function(){
$(document).off("mousemove",fn1);
});
</script>
</html>