2013-07-04 65 views
0

我創建了一個簡單的代碼來拖放div元素,但效果不好。
將div元素快速拖動到任何方向top,left,right,down時,鼠標光標將離開div元素,儘管我仍然按下按鈕。拖放div元素效果不佳

HTML

<div id="box"></div> 

CSS

div#box { 
    background-color:yellowgreen; 
    width:150px; height:100px; 
    border:1px solid #ffff66; 
    position:relative; 
} 

的JavaScript

var elem = document.getElementById('box'); 
var PositionX = 0; 
var PositionY = 0; 
var MouseX = 0 
var MouseY = 0; 
var mouseDown = false; 

elem.onmousedown = function(e) { 
    PositionX = elem.offsetLeft; 
    PositionY = elem.offsetTop; 
    MouseX = e.clientX; 
    MouseY = e.clientY; 
    mouseDown = true; 
}; 

elem.onmousemove = function(e) { 
    if (mouseDown) { 
    elem.style.left = PositionX + e.clientX - MouseX + "px"; 
    elem.style.top = PositionY + e.clientY - MouseY + "px"; 
    } 
}; 

elem.onmouseover = function(e) { 
    elem.style.cursor = 'move'; 
}; 

elem.onmouseup = function(e) { 
    mouseDown = false; 
}; 

You can see online

+0

如果這不是ü正常工作,那麼你可以使用http://jqueryui.com/draggable/ – Arunu

回答

0

嘗試改變這一行:

elem.onmousemove = function(e) { 

到:

document.onmousemove = function(e) { 
0

試試這個希望它會完成工作:

var elem= document.getElementbyId('<%=box.ClientID%>'); 
elem.onmousemove= function(e) { 
    if (mouseDown) { 
    elem.style.left = PositionX + e.clientX - MouseX + "px"; 
    elem.style.top = PositionY + e.clientY - MouseY + "px"; 
    } 
};