簡體   English   中英

拖動圖片,但從可拖動的圖像中刪除名稱元素

[英]Drag picture but drop name element from a draggable image

在構建拖放頁面時,我希望將圖像拖動到放置區域,但是在放置時,我希望放置一些HTML而不是圖像。

這可能嗎?

也許使用HTML5作為id文本或文件URL。

這是我的代碼:

可拖動元素

 <img id="drag1" name="<h1>My Super Image</h1>" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

拖放區

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>

我的標題腳本

<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>

我可以將圖像拖到放置區域,但是我想從名稱字段中放置文本而不是圖像。 我怎樣才能做到這一點?

您需要的一切都在問題本身中。 您只需要更改一行代碼:

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

該行告訴瀏覽器將元素與data指定的ID(可拖動圖片的ID)附加到drop元素中。 對其進行修改,以便將代碼附加在元素的name屬性中,而不是整個元素。

像這樣:

ev.target.innerHTML += document.getElementById(data).name;

完成此操作后,您將不添加圖像,而是將附加可拖動圖像的name屬性中的任何內容。

您可以在這里看到它的工作方式:

 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)); ev.target.innerHTML += document.getElementById(data).name; } 
 #div1 { border:1px dotted gray; background:#f0f0f0; height:100px; width:100px; margin-bottom:20px; } 
 <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div> <img id="drag1" name="<h1>My Super Image</h1>" src="http://lorempixel.com/336/69/people" draggable="true" ondragstart="drag(event)" width="336" height="69"/> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM