我一直在研究他们需要的项目HTML5
拖动&拖放,我卡住了一些可能会很容易实现的atm,但我似乎无法找到解决方案。将拖放区域限制为一些可拖动的元素
基本上我有一些可拖动的元素和一些放置区域。由于这是alwasy更容易工作的例子来解释我做了这个简单的JSFIDDLE
现在你可以将任何元素到任何拖放区域或将它们搬走,因为我需要的,但我想实现的是什么使橙色盒子在任何绿色区域中都可以放下(并且忽略蓝色区域......如果你把它放在那里则使其回到原来的位置),红色盒子放入蓝色盒子(忽略绿色盒子) 。
任何人都可以帮助我或提示我一个方法来解决这个问题吗?
function DragOver(ev) {
ev.preventDefault();
}
function Drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function Drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
var elemens = document.querySelectorAll('.draggable');
[].forEach.call(elemens, function(elem) {
elem.addEventListener('dragover', DragOver, false);
elem.addEventListener('drop', Drop, false);
});
#divContenedor {
width: 950px;
height: 500px;
}
#div1,
#div2,
#div3 {
width: 350px;
height: 70px;
border: 1px solid #aaaaaa;
background-color: green;
}
#div4 {
width: 350px;
height: 70px;
border: 1px solid #aaaaaa;
background-color: blue;
}
<p>
Drag&drop testing</p>
<div id="divContenedor" class="draggable" style="background-color: yellow; width: 100%; float: left; position: relative;">
<div id="drag1" draggable="true" ondragstart="Drag(event)" style="width: 336px; height: 69px; background-color: orange; cursor: move;">1</div>
<div id="drag2" draggable="true" ondragstart="Drag(event)" style="width: 336px; height: 69px; background-color: orange; cursor: move;">2</div>
<div id="drag3" draggable="true" ondragstart="Drag(event)" style="width: 336px; height: 69px; background-color: red; cursor: move;">3</div>
</div>
<div style="position: absolute; top: 100px; left: 500px;">
<div id="div1" class="draggable" ></div>
<br />
<div id="div2" class="draggable" ></div>
<br />
<div id="div3" class="draggable" ></div>
<br />
<div id="div4" class="draggable" ></div>
</div>
UPDATE JSFIDDLE与@Amen溶液。
非常感谢。我一直在测试它,我认为这是行得通的。 –
用你的解决方案。 ty再次https:// jsfiddle。net/alvaromenendez/ve4aqn0z/6/ –
似乎所有的作品都没问题?或者还有一些问题依然存在? – Armen