作者pillsn (游)
看板Ajax
标题Re: [请益] 同时判断onmousdown和onmousemove
时间Wed Jul 25 23:15:15 2007
※ 引述《JYHuang (夏天到了,冷不起来了说)》之铭言:
: 我要做一个按下左键後可以拖动的元件。
: 我是在一个DIV中同时加了onmousedown,onmouseup,onmousemove三个事件。
: onmousedown之後,会变改游标,再在onmousemove呼叫的函式中
: 视游标是否有改变来判断是否两个条件都满足。
: 可是当按着键离开div的范围後再放开键。
: (游标移动太快时,div会跟不上变成游标脱离了div的范围)
: 回到div时,会被视为按键被按着的状态,要再按一下才能恢复。
: 有没有其它的办法呢?
: http://homepage11.seed.net.tw/web@1/jyhuang/test.html
我改了一下
直接po改的地方好了
var mouseDown = 0; //全域变数
function move(e)
{
if (mouseDown == 1)
{
if(!e) e=window.event;
X=e.clientX-W;
Y=e.clientY-H;
document.getElementById("drop").style.left=X+"px";
document.getElementById("drop").style.top=Y+"px";
document.getElementById("text").value= W+","+H;
}
}
function drop(botton,e)
{
if(botton)
{
if(!mouseDown)
{
mouseDown = 1;
if(!e) e=window.event;
obj = document.getElementById("drop");
obj.style.cursor="move";
W=e.clientX-obj.offsetLeft;
H=e.clientY-obj.offsetTop;
}
}
else
{
mouseDown =0;
document.getElementById("drop").style.cursor= "default";
}
}
还有把 onmousemove 事件改在body标签上
先前的程式是根据滑鼠游标来决定要不要移动,但是因为滑鼠动太快跑出div的范围了,
不知道为什麽滑鼠游标变回default了(不是因为botton变数的关系)
所以改用一个全域变数判断mousedown,因为div的最上一层是body,所以把onmousemove设
在body上(上一层是有个div id="contant"的,不过...太小又懒得调)
应该有其他更好的写法 @@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.68.164.21