2017-08-03 32 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位置=目标位置。

我知道这是一个伪代码的答案,但它只是我的思想过程,以解决问题。