鼠标拖拽DIV效果

代码效果-鼠标点击DIV,可以任意拖拽DIV


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>drag</title>
<script src="../../../tomcat7/webapps/html/jquery-1.8.3.min.js"></script>

<script>
$(function(){

$("#move").mousedown(function(e){
drag(document.getElementById("move"),e)
});

});

function drag(elementToDrag, event) {
var startX = event.clientX,
startY = event.clientY;
var origX = elementToDrag.offsetLeft,
origY = elementToDrag.offsetTop;
var deltaX = startX - origX,
deltaY = startY - origY;
if (document.addEventListener) {
document.addEventListener("mousemove", moveHandler, true);
document.addEventListener("mouseup", upHandler, true);
} else {
elementToDrag.setCapture();
elementToDrag.attachEvent("onmousemove", moveHandler);
elementToDrag.attachEvent("onmouseup", upHandler);
elementToDrag.attachEvent("onlosecapture", upHandler);
}
if (event.stopPropagation)
event.stopPropagation();
else
event.cancelBubble = true;

if (event.preventDefault)
event.preventDefault();
else
event.returnValue = false;

//鼠标移动时触发此函数
function moveHandler(e) {
if (!e)
e = window.event;
elementToDrag.style.left = (e.clientX - deltaX) + "px";
elementToDrag.style.top = (e.clientY - deltaY) + "px";
elementToDrag.style.zIndex = "10";

if (e.stopPropagation)
e.stopPropagation();
else
e.cancelBubble = true;
}

//鼠标Up时触发
function upHandler(e) {
//alert("up");
if (!e)
e = window.event;
elementToDrag.style.zIndex = "1";
if (document.removeEventListener) {
document.removeEventListener("mouseup", upHandler, true);
document.removeEventListener("mousemove", moveHandler, true);
} else {
elementToDrag.detachEvent("onlosecapture", upHandler);
elementToDrag.detachEvent("onmouseup", upHandler);
elementToDrag.detachEvent("onmousemove", moveHandler);
elementToDrag.releaseCapture();
}
if (e.stopPropagation)
e.stopPropagation();
else
e.cancelBubble = true;
}
}
</script>

</head>


<body>

<div id="move" style=" position:absolute; z-index:100px; background:#F96; height:200px; width:200px;">drag</div>

</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值