我正在尝试创建一种用于简单图形创建的可视化界面。它由 10 个图像图标和 5 个可以放置这些图标的框组成。我希望用户能够选择他们想要显示的 10 个图标中的哪一个,并使用拖放来排列他们认为合适的元素。这 5 个图标也在一个 div 中,可以在其中放置图标,这样如果他们改变主意并希望选择另一个图标,他们可以将图标返回到“home”行。
与这个简单的教程不同,但有更多的 div 和图标: http ://www.w3schools.com/html/tryit.asp?filename=tryhtml5_draganddrop2
我的脚本:
<script>
function allowDrop(ev)
{
ev.preventDefault();
}
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
//CSS CHANGES HERE FOR ON PICKUP
$( ".dragfive" ).css("border", "2px solid #ff9d00");
$( ".select5" ).css("border", "2px solid #ff9d00");
}
function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
//CSS CHANGES HERE FOR ON DROP
$( ".dragfive" ).css("border", "2px solid transparent");
$( ".select5" ).css("border", "2px solid transparent");
}
</script>
我的代码与教程完全相同,但我添加了一些不错的 CSS 更改,正如注释所示 - 我让彩色边框看起来向用户指示他们可以放置项目的位置。这些一旦掉落就会变得透明。完美运行,除了...
- 如何防止图标被放在另一个图标之上?(或者更确切地说,只允许将图标放入空的 div 中?)
- 如果我希望创建第二组图标并复制该过程,我怎样才能将它们与其允许的放置区域分开?(这样图标就不会出现在意想不到的地方)
谢谢一堆。