1. 程式人生 > 其它 >js拖拽完整程式碼示例

js拖拽完整程式碼示例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>dome</title>
<style>
#dv {
width:500px;
height:500px;
background:-webkit-linear-gradient(#FFCCCC,#FFC8B4,#FFDDAA, #FFFFBB,#EEFFBB,#BBFFEE,#CCEEFF,#CCDDFF);
/*border-radius:50%;*/
position:absolute;
animation:turn .21s linear infinite;
box-shadow:0px 0px 10px #FFFFBB;
}
@keyframes turn{
0%{-webkit-transform:rotate(0deg);}
25%{-webkit-transform:rotate(90deg);}
50%{-webkit-transform:rotate(180deg);}
75%{-webkit-transform:rotate(270deg);}
100%{-webkit-transform:rotate(360deg);}
}

</style>
</head>

<body>
<div id="dv"></div>
</body>
<script>
//獲取元素
var dv = document.getElementById('dv');
var x = 0;
var y = 0;
var l = 0;
var t = 0;
var isDown = false;
//滑鼠按下事件
dv.onmousedown = function(e) {
//獲取x座標和y座標
x = e.clientX;
y = e.clientY;

//獲取左部和頂部的偏移量
l = dv.offsetLeft;
t = dv.offsetTop;
//開關開啟
isDown = true;
//設定樣式
dv.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);

dv.style.left = nl + 'px';
dv.style.top = nt + 'px';
}
//滑鼠抬起事件
dv.onmouseup = function() {
//開關關閉
isDown = false;
dv.style.cursor = 'default';
}
</script>

</html>