用jquery实现层移动,怎么使鼠标只按住部分区域就能拖动?
以下可以实现层移动,但如果想使鼠标只按住部分区域就能拖动,如何做呢?
比如:<div id="dialog">
<div id="title"></div>
......
</div>
只按住title区域就能够实现整个层的移动,如何实现?
//div移动
$("#dialog").mousedown(function (e) { //e鼠标事件
$(this).css("cursor", "move"); //改变鼠标指针的形状
var offset = $(this).offset(); //DIV在页面的位置
var x = e.pageX - offset.left; //获得鼠标指针离DIV元素左边界的距离
var y = e.pageY - offset.top; //获得鼠标指针离DIV元素上边界的距离
$(document).bind("mousemove", function (ev)//绑定鼠标的移动事件,因为光标在DIV元素外面也要有效果,所以要用doucment的事件,而不用DIV元素的事件
{
$("#dialog").stop(); //加上这个之后
var _x = ev.pageX - x; //获得X轴方向移动的值
var _y = ev.pageY - y; //获得Y轴方向移动的值
$("#dialog").animate({ left: _x + "px", top: _y + "px" }, 10);
});
});
$(document).mouseup(function () {
$("#dialog").css("cursor", "default");
$(this).unbind("mousemove");
})
------解决方案--------------------
//div移动
$("#title").mousedown(function (e) { //e鼠标事件
$("#dialog").css("cursor", "move"); //改变鼠标指针的形状
var offset = $("#dialog").offset(); //DIV在页面的位置
var x = e.pageX - offset.left; //获得鼠标指针离DIV元素左边界的距离
var y = e.pageY - offset.top; //获得鼠标指针离DIV元素上边界的距离
$(document).bind("mousemove", function (ev)//绑定鼠标的移动事件,因为光标在DIV元素外面也要有效果,所以要用doucment的事件,而不用DIV元素的事件
{
$("#dialog").stop(); //加上这个之后
var _x = ev.pageX - x; //获得X轴方向移动的值
var _y = ev.pageY - y; //获得Y轴方向移动的值
$("#dialog").animate({ left: _x + "px", top: _y + "px" }, 10);
});
});
$(document).mouseup(function () {
$("#dialog").css("cursor", "default");
$(this).unbind("mousemove");
})