jQuery控制Div拖拽效果完整实例分析
本文实例讲述了jQuery控制Div拖拽效果的方法。分享给大家供大家参考。具体如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>无标题文档</title>
<style>
#Drigging{
width:200px;
background:#CCC;
border:solid1px#666;
height:80px;
line-height:80px;
text-align:center;
position:absolute;
}
</style>
<scriptsrc="jquery-1.8.2.min.js"type="text/javascript"></script>
<scripttype="text/javascript">
$(function(){
varbool=false;//标识是否移动元素
varoffsetX=0;//声明DIV在当前窗口的Left值
varoffsetY=0;//声明DIV在当前窗口的Top值
$("#Drigging").mouseover(function(){
$(this).css('cursor','move');
//当鼠标移动到拖拽的DIV上的时候,将鼠标的样式设置为移动(move)
})
$("#Drigging").mousedown(function(){
bool=true;
//当鼠标在移动元素按下的时候将bool设定为true
offsetX=event.offsetX;
//获取鼠标在当前窗口的相对偏移位置的Left值并赋值给offsetX
offsetY=event.offsetY;
//获取鼠在当前窗口的相对偏移位置的Top值并赋值给offsetY
$(this).css('cursor','move');
}).mouseup(function(){
bool=false;
//当鼠标在移动元素起来的时候将bool设定为false
})
$(document).mousemove(function(){
if(!bool)//如果bool为false则返回
return;
//当bool为true的时候执行下面的代码
varx=event.clientX-offsetX;
//event.clientX得到鼠标相对于客户端正文区域的偏移
//然后减去offsetX即得到当前推拽元素相对于当前窗口的X值
//(减去鼠标刚开始拖动的时候在当前窗口的偏移X)
vary=event.clientY-offsetY;
//event.clientY得到鼠标相对于客户端正文区域的偏移
//然后减去offsetX即得到当前推拽元素相对于当前窗口的Y值
//(减去鼠标刚开始拖动的时候在当前窗口的偏移Y)
$("#Drigging").css("left",x);
$("#Drigging").css("top",y);
$("#Drigging").css('cursor','move');
})
})
</script>
</head>
<body>
<divid="Drigging"style="float:left">
拖拽层
</div>
</body>
</html>
希望本文所述对大家的jQuery程序设计有所帮助。