【问题标题】:How do I calculate and determine the area at which the div must be dropped?如何计算和确定必须删除 div 的区域?
【发布时间】:2017-08-04 01:06:32
【问题描述】:

我正在纯粹用 Javascript 构建一个拖放应用程序。我已经编写了可以在页面中随机拖放元素的拖动部分。现在,我建立了一个包含 9 个框(div)的放置区,其中必须放置 9 个 div。我想不出一种方法可以帮助我完成这项任务。我正在考虑将这些 div 设为“绝对”并使用顶部和左侧属性重新构建它们。但是我应该如何进一步进行?我拖动的 div 即 onmousedown 将如何知道它应该放在指定位置的 onmouseup 。示例:如果我选择一个编号为 1 的 div,它应该下降到编号为 1 的目标。

这是我用于选择和拖动的 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';
        }
    };
};

【问题讨论】:

    标签: javascript html css drag-and-drop


    【解决方案1】:

    我会让目标识别“onmouseenter”并将该目标的布尔值设置为真,然后将其设置为假“onmouseleave”。然后“onmouseup”检查所有布尔值,如果 div1 已被删除且 target1 为真,则 div1 位置 = 目标位置。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      • 2018-07-14
      • 2011-11-30
      相关资源
      最近更新 更多