Re: [請益] 同時判斷onmousdown和onmousemove
※ 引述《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
討論串 (同標題文章)
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章