javascript - 如何防止html中可拖动元素重叠

标签 javascript html drag-and-drop

我创建了一个文本框,在其中拖动动态创建的 div。但如果我将 div 放在其他放置的 div 上,它们就会重叠。我必须将它们垂直排列。在 jQuery 中,我找到了很多解决方案,但我需要纯 JavaScript。请帮助我并提出建议。

我使用的html:

<div id="area1" align="center" ondrop="drop(event)" ondragover="allowDrop(event)" ></div>

我使用过的CSS:

#area1 {
    float:left;
    width:25%;
    height:240px;
    padding:10px;
    border:1px solid #A485D8;
    margin-left: 10px;
    margin-right: 10px;
    padding-top:10px;
}

最佳答案

问题是具有属性 draggable="true" 的元素被删除到类似的(可拖动)元素。

似乎 ondrop 事件的相同函数也应用于可拖动元素。

为了避免这种情况,您应该在为 ondrop 事件调用的函数中添加一些条件。下面是一个例子。

<div id="area1" align="center" ondrop="drop(event)" ondragover="allowDrop(event)" ></div>

function drop(ev) 
{
if(ev.target.className=='into' || ev.target.className=='options_list')
    {
    var incoming_id = ev.dataTransfer.getData("incoming_choice")
    ev.preventDefault();
    ev.target.appendChild(document.getElementById(incoming_id));
    }
}

就我而言,我希望可拖动元素仅放入 className'options_list''into' 的元素中>。它不应该被放入另一个可拖动对象中。我的代码中的 Draggables 的 className'match_choice'。同样,您可以使用 id 而不是 className 进行比较。

关于javascript - 如何防止html中可拖动元素重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13683661/

相关文章:

angular - CdkDrag 更新位置

javascript - 我应该如何管理 Hapijs 中的 session ?

javascript - 如果单击特定链接,如何更新 div 内容

javascript - Node.js:有哪些技术可以编写干净、简单的回调代码?

javascript - 输入类型日期和JavaScript设置的最小值

JavaScript:异步取消 ondragstart

macos - NSCollectionView - 拖动显示 "hole"- 希望它看起来像 Finder

javascript - JQuery 检查 localStorage 是否设置

python - 使用 Python 的正则表达式模式在 HTML 页面中搜索

JavaScript 性格测验