关于div窗口的拖动问题
在div窗口的拖动当中,鼠标的三个动作是重点:mousedown,mousemove, mouseup:鼠标点击,移动,放开;
然后设置拖拽区域,举个例子:
<div id="xingZQYTree1" class="pop1"
style="display: none;">
<div id="pop_title" class="pop_title1"
title=''>
<div class="pop_title_left1" style="font-size: 20px">
添加联系人
<div class="win_ctrls1">
<div class="win_ctrls_wrap">
<a href="javascript: void(0);" id="se_min" class="win_ctrl win_ctrl_min" duty="win_ctrl1" duty-action="min" duty-data="chat"></a>
<a href="javascript: void(0);" id="se_close" class="win_ctrl win_ctrl_close" duty="win_ctrl1" duty-action="close" duty-data="chat"></a>
</div>
</div>
<div class="pop_title_right1">
<!-- <label title="关闭此窗口" onclick="xingZQYTree.style.display='none';">
X
</label> -->
</div>
</div>
</div>
<!-- 此独立div表示添加联系人 -->
<div class="input_select">
<form >
<div class="input_con" id="input_number">
好友号码
<input id="contanct_num" class="txt1" Width="80px" type="text" value=""/>
</div>
<div class="input_con" id="input_contanct">
备注姓名
<input id="contanct_name" class="txt1" Width="80px" type="text" value=""/>
</div>
<div class="select_gr" id="select_group">
好友分组
<select name="cars" class="select_g" id="select_option">
<option>家人</option>
<option>朋友</option>
<option>同学</option>
<option>同事</option>
</select>
</div>
</div>
<div>
<input id="yes" class="Yes" type="button" value="确定"/>
<input id="no" class="No" type="button" value="取消"/>
</div>
</form>
</div>
</div>
可以设置拖拽区域为:id=pop_title这个div,对应的是整个div:id=xingZQYTree1窗口,具体算法如下:
var ff;
$("#pop_title").mousedown(function(e){
ff=document.getElementById("xingZQYTree1"); //获取对象div
IMUI.mousedownEvent(e,ff);
});
$("#pop_title").mousemove(function(e){
IMUI.mousemoveEvent(e,ff)
});
$("#pop_title").mouseup(function(){
IMUI.mouseupEvent();
});
var z,m,n,l,t;
window.IMUI = {
mousedownEvent:function(e,ff){
m=e.clientX; //鼠标按下时获取x轴坐标
n=e.clientY;
l=ff.offsetLeft; //获取div的左位移
r=ff.offsetRight;
t=ff.offsetTop; //获取div的右位移
b=ff.offsetBottom;
z=true; //为变量赋值
},
mousemoveEvent:function(e,ff){
var x=e.clientX; //鼠标移动时获取x轴坐标
var y=e.clientY; //鼠标移动时获取y轴坐标
if (z==true) //当鼠标按下并移动时执行
{
ff.style.left=l+(x-m)+"px";//将移动后的坐标赋给相应的位移
ff.style.right=l+(m-x)+"px";
ff.style.top=t+(y-n)+"px";
ff.style.bottom=t-(y-n)+"px";
}
},
mouseupEvent:function(){
z=false;
},
}
即可形成一个可拖拽的div窗口,东西比较粗糙,不过效果可行
posted on 2013-05-31 17:23 zhouyunjian 阅读(358) 评论(0) 收藏 举报
浙公网安备 33010602011771号