2017-08-03 57 views
1

我正在用Javascript構建一個拖放應用程序。我已經編寫了可以在頁面中隨意拖放元素的拖動部分。現在,我已經構建了一個包含9個盒子(div)的拖放區域,其中必須放置9個div。我想不出一個能幫助我完成這項任務的方法。我正在考慮讓這些div「絕對」,並重新構建它們使用頂部&左側屬性。但是我應該如何繼續下去?我拖動的div將會如何知道它應該放在指定的位置。例如:如果我選擇編號爲1的DIV,它應該在目標編號爲1如何計算並確定div必須放置的區域?

這裏掉落年代的Javascript我使用了選擇和拖動:

window.onload = function() { 
    var el = document.getElementById('block1'); 
    var mover = false, x, y, posx, posy, first = true; 
    el.onmousedown = function() { 
     mover = true; 
    }; 
    el.onmouseup = function() { 
     mover = false; 
     first = true; 
    }; 
    el.onmousemove = function(e) { 
     if (mover) { 
      if (first) { 
       x = e.offsetX; 
       y = e.offsetY; 
       first = false; 
      } 
      posx = e.pageX - x; 
      posy = e.pageY - y; 
      this.style.left = posx + 'px'; 
      this.style.top = posy + 'px'; 
     } 
    }; 
}; 

回答

0

我將有目標識別「OnMouseEnter在」併爲該目標設置布爾值爲true,然後將其設置爲false「onmouseleave」。然後「onmouseup」檢查所有的布爾值,如果div1已被刪除且target1爲true,則div1位置=目標位置。

我知道這是一個僞代碼的答案,但它只是我的思想過程,以解決問題。