JS:将图像拖放到另一图像上

时间:2019-01-15 21:25:21

标签: javascript html drag-and-drop

我希望能够拖放-并通过此操作将一个图像叠加在另一个图像上。它们是透明的图像。

但是,每当我尝试执行此操作时,第一张图像就会消失。 有什么建议吗?

<script>
function allowDrop(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));
}

</script>

1 个答案:

答案 0 :(得分:0)

它消失了,因为您使用了ev.target.appendChild(document.getElementById(data));

每个元素只能在单个实例中存在于DOM中。对现有元素执行appendChild,可从当前位置提取它。如果您想复制元素-例如,您需要使用cloneNode方法来显式复制元素。

ev.target.appendChild(document.getElementById(data).cloneNode());