2013-03-24 52 views
0

我試圖通過捕獲鼠標座標並相應地移動東西來將東西拖出我的文檔。目前我使用document.addEventListener,即使我在窗口外面拖動東西,這也可以很好地工作。功能越來越多,爲了跟上覆雜性,我寧願使用div和div1.addEventListener。我可以在文檔窗口外面拖動元素,但不能在簡單的div之外。爲什麼?

但是,這種改變不讓我把東西拖到我的窗外,更不用說我的窗外了。我只是在談論拖動(鼠標在div內,然後將鼠標拖出)。一旦我不在格子裏,它就會剎車。

我不明白髮生了什麼,我很久以前就試驗過它,並且我記得這是工作代碼。

fiddle here

window.onload = function() 
{ 
    div1 = document.getElementById("div1"); 

    document.addEventListener('mousedown', function(evt){mouseDown(evt, this)}, false); 
    document.addEventListener('mousemove', function(evt){mouseMove(evt, this)}, false); 
    document.addEventListener('mouseup', function(evt){mouseUp(evt, this)}, false); 

    // div1.addEventListener('mousedown', function(evt){mouseDown(evt, this)}, false); 
    // div1.addEventListener('mousemove', function(evt){mouseMove(evt, this)}, false); 
    // div1.addEventListener('mouseup', function(evt){mouseUp(evt, this)}, false); 
} 

function mouseMove(evt, caller) 
{ 
} 

function mouseDown(evt, caller) 
{ 
} 

function mouseUp(evt, caller) 
{ 
} 

回答

0

由於div的座標不改變,它將停止獲取的mouseMove事件時的阻力是其邊界之外。

+0

但是,如果鼠標離開窗口,文檔也是如此 – wubbewubbewubbe 2013-03-24 19:38:30

+0

我不得不回頭閱讀規範,但我認爲該窗口是一個特殊情況。根據您需要支持的瀏覽器,我建議您閱讀HTML5拖放API。從長遠來看,這可能會讓你的生活變得更容易。 – Jerry 2013-03-24 19:45:52

+0

HTML拖放是特別的東西。我不拖動HTML元素。我在畫布上拖動形狀。我想我應該早些時候提過。 – wubbewubbewubbe 2013-03-24 20:24:08