首先我们来分析一下拖曳的步骤,首先当然是你的鼠标在要拖曳的层上按下,然后的事情,可以想象:是一个鼠标跟
随。最后,拖到了目的地,鼠标按键放开,拖曳结束。
如果你看过本站的事件驱动那你一定知道鼠标按下触发的是mousedown事件,鼠标放开的事件是mouseup,而实现事件驱
动函数的方法是obj.οnmοusedοwn=func;取消的方法是obj.οnmοusedοwn=null;好了,知道了上面的知识,让我们来看看代
码:
<script>
var offy;
var offx;//offy,offx保存了鼠标按下的位置在被拖曳物体内的相对坐标
function drag() {
alll.style.top=event.clientY+document.body.scrollTop-offy;
alll.style.left=event.clientX+document.body.scrollLeft-offx;
return true;
}// 鼠标跟随用的函数
function start_drag() {
offy=event.offsetY;
offx=event.offsetX;
document.οnmοusemοve=drag;
}//开始拖曳(使鼠标跟随有效)
function stop_drag() {
document.οnmοusemοve=null;
}//停止拖曳(使鼠标跟随失效)
</script>
<!--定义一个层alll
<div id=alll style="height:200;width=200" οnmοusedοwn="start_drag()" οnmοuseup="stop_drag()"
οnmοuseοut="stop_drag()">这个层能被拖曳耶!</div>
注:当鼠标按下时开始跟随,鼠标放开或离开层时停止跟随,加入onmouseout是因为有时onmouseup的响应不太好。
随。最后,拖到了目的地,鼠标按键放开,拖曳结束。
如果你看过本站的事件驱动那你一定知道鼠标按下触发的是mousedown事件,鼠标放开的事件是mouseup,而实现事件驱
动函数的方法是obj.οnmοusedοwn=func;取消的方法是obj.οnmοusedοwn=null;好了,知道了上面的知识,让我们来看看代
码:
<script>
var offy;
var offx;//offy,offx保存了鼠标按下的位置在被拖曳物体内的相对坐标
function drag() {
alll.style.top=event.clientY+document.body.scrollTop-offy;
alll.style.left=event.clientX+document.body.scrollLeft-offx;
return true;
}// 鼠标跟随用的函数
function start_drag() {
offy=event.offsetY;
offx=event.offsetX;
document.οnmοusemοve=drag;
}//开始拖曳(使鼠标跟随有效)
function stop_drag() {
document.οnmοusemοve=null;
}//停止拖曳(使鼠标跟随失效)
</script>
<!--定义一个层alll
<div id=alll style="height:200;width=200" οnmοusedοwn="start_drag()" οnmοuseup="stop_drag()"
οnmοuseοut="stop_drag()">这个层能被拖曳耶!</div>
注:当鼠标按下时开始跟随,鼠标放开或离开层时停止跟随,加入onmouseout是因为有时onmouseup的响应不太好。