首先我们来分析一下拖曳的步骤,首先当然是你的鼠标在要拖曳的层上按下,然后的事情,可以想象:是一个鼠标跟
随。最后,拖到了目的地,鼠标按键放开,拖曳结束。
如果你看过本站的事件驱动那你一定知道鼠标按下触发的是mousedown事件,鼠标放开的事件是mouseup,而实现事件驱
动函数的方法是obj.onmousedown=func;取消的方法是obj.onmousedown=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.onmousemove=drag;
}//开始拖曳(使鼠标跟随有效)
function stop_drag() {
document.onmousemove=null;
}//停止拖曳(使鼠标跟随失效)
</script>
<!--定义一个层alll
<div id=alll style="height:200;width=200" onmousedown="start_drag()" onmouseup="stop_drag()"
onmouseout="stop_drag()">这个层能被拖曳耶!</div>
注:当鼠标按下时开始跟随,鼠标放开或离开层时停止跟随,加入onmouseout是因为有时onmouseup的响应不太好。
随。最后,拖到了目的地,鼠标按键放开,拖曳结束。
如果你看过本站的事件驱动那你一定知道鼠标按下触发的是mousedown事件,鼠标放开的事件是mouseup,而实现事件驱
动函数的方法是obj.onmousedown=func;取消的方法是obj.onmousedown=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.onmousemove=drag;
}//开始拖曳(使鼠标跟随有效)
function stop_drag() {
document.onmousemove=null;
}//停止拖曳(使鼠标跟随失效)
</script>
<!--定义一个层alll
<div id=alll style="height:200;width=200" onmousedown="start_drag()" onmouseup="stop_drag()"
onmouseout="stop_drag()">这个层能被拖曳耶!</div>
注:当鼠标按下时开始跟随,鼠标放开或离开层时停止跟随,加入onmouseout是因为有时onmouseup的响应不太好。
博客介绍了层拖曳的步骤,包括鼠标按下、跟随和放开结束。提及鼠标按下触发mousedown事件,放开触发mouseup事件,还给出实现和取消事件驱动函数的方法。最后展示了实现层拖曳功能的代码,当鼠标按下开始跟随,放开或离开层时停止跟随。
1万+

被折叠的 条评论
为什么被折叠?



