English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
드래그 앤 드롭은 대표적인 기능으로, 대상을 잡아서 다른 위치로 끌어올리는 것입니다. HTML5 에서, 드래그 앤 드롭은 표준의 일부입니다. 어떤 요소든지 드래그 앤 드롭할 수 있습니다。
드래그 앤 드롭(Drag and drop)는 HTML5 표준 구성 요소입니다.
oldtoolbag.com 아이콘을 사각형 상자 안으로 드래그하세요.
드래그 앤 드롭은 대표적인 기능으로, 대상을 잡아서 다른 위치로 끌어올리는 것입니다.
HTML5 에서, 드래그 앤 드롭은 표준의 일부입니다. 어떤 요소든지 드래그 앤 드롭할 수 있습니다。
Internet Explorer 9+, Firefox, Opera, Chrome, 그리고 Safari가 드래그 앤 드롭을 지원합니다。
주의:Safari 5.1.2드래그 지원하지 않습니다.
아래 예제는 간단한 드래그 앤 드롭 예제입니다:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>기본 가이드(oldtoolbag.com)</title> <style type="text/css"> #div1 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;} </style> <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> </head> <body> <p>拖动 oldtoolbag.com 图片到矩形框中:</p> <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div> <br> <img id="drag1" src="/static/images/logo-n.png" draggable="true" ondragstart="drag(event)" width="336" height="69"> </body> </html>测试看看 ‹/›
它看上去也许有些复杂,不过我们可以分别研究拖放事件的不同部分。
首先,为了使元素可拖动,把 draggable 属性设置为 true :
<img draggable="true">
然后,规定当元素被拖动时,会发生什么。
在上面的示例中,ondragstart 属性调用了一个函数,drag(event),它规定了被拖动的数据。
dataTransfer.setData() 方法设置被拖数据的数据类型和值:
function drag(ev)
{}}
ev.dataTransfer.setData("Text",ev.target.id);
}
Text 是一个 DOMString 表示要添加到 drag object 的拖动数据的类型。值是可拖动元素的 id ("drag1")。
ondragover 事件规定在何处放置被拖动的数据。
默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。
这要通过调用 ondragover 事件的 event.preventDefault() 方法:
event.preventDefault()
当放置被拖数据时,会发生 drop 事件。
在上面的示例中,ondrop 属性调用了一个函数,drop(event):
function drop(ev)
{}}
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
코드 설명:
preventDefault() 호출하여 데이터의 기본 처리를 방지합니다(드롭 이벤트의 기본 행동은 링크로 열리는 것입니다)
dataTransfer.getData("Text") 메서드를 사용하여 드래그된 데이터를 얻습니다. 이 메서드는 setData() 메서드에서 동일한 타입으로 설정된 모든 데이터를 반환합니다.
푸시드 데이터는 드래그된 요소의 id ("drag1)
푸시드 요소를 드래그된 요소(목표 요소)에 추가합니다
HTML5이미지를 오고 가게 드래그 앤 드롭
두 개의 <div> 요소 사이에 이미지를 드래그 앤 드롭하는 방법.