簡単なグラフィックを作成するための一種の視覚的インターフェイスを作成しようとしています。10 個の画像アイコンと、それらのアイコンを配置できる 5 つのボックスで構成されます。ユーザーが 10 個のアイコンから表示したいものを選択し、ドラッグ アンド ドロップを使用して要素を適切に配置できるようにしたいと考えています。5 つのアイコンは、アイコンをドロップできる div 内にもあるため、気が変わって別のアイコンを選択したい場合は、アイコンを「ホーム」行に戻すことができます。
この簡単なチュートリアルとは異なりますが、より多くの 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 にドロップすることのみを許可しますか?)
- 2 番目のアイコンのセットを作成してプロセスを複製したい場合、それらと許可されたドロップ領域を分離するにはどうすればよいですか? (アイコンが意図しない場所に配置されないように)
本当にありがとう。