별의 공부 블로그 🧑🏻‍💻
728x90
728x170

- HTML5에서는 웹 페이지 내부 또는 웹 페이지 외부에서 드래그 앤 드롭을 할 수 있음.

 

* 드래그 앤 드롭

- 드래그 앤 드롭은 파일 복사 등에서 일상적으로 사용되는 조작인데, HTML5에서는 웹 페이지의 내부 또는 웹 브라우저의 외부에서 드래그 앤 드롭을 지원함.

- 이로 인해 요소끼리나 웹 브라우저, 다른 소프트웨어 사이에 정보를 주고받을 수 있게 되었음.

 

* draggable 속성

- 웹 페이지 내에서 드래그할 요소에는 draggable 속성에 "true"를 지정함.

- 원래부터 드래그할 수 있는 요소도 있음.

- 또한 웹 브라우저에 따라서는 선택한 상태가 아니면 텍스트를 드래그할 수 없는 경우도 있음.

 

<div draggable="true">여행을 떠나는 유미나</div>

 

* 이벤트 처리

- 드롭할 위치를 설정하는 데는 dropzone 속성을 지정하는 방법이 있지만, 현재는 많이 지원하고 있지 않으므로, 여기서는 이벤트 핸들러를 조작하여 받기로 함.

- 드래그 앤 드롭에서 사용하는 이벤트는 세 가지임.

 

1) dragstart 이벤트

- 드래그 시작 시에 발생하며, 여기서 전달하고 싶은 값을 설정함.

2) dragover 이벤트

- 드롭 직전에 발생하며, 여기서 기본 처리를 무효로 해 둚.

3) drop 이벤트

- 드롭되었을 때 발생하며, 여기서 데이터를 꺼냄.

- 또한 기본 처리를 무효로 해 둚.

 

* 드래그 앤 드롭의 예 (FireFox와 Chrome에서 조작)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<title>예제</title>
<style>
#zone {
    width:200px;
    height:100px;
    background-color:silver;
}
#dragitem{
    color:red;
    background-color:pink;
    width:100px;
}
</style>
</head>
<body>
<div id="dragitem" draggable="true">여행을 떠나는 유미나</div>   // 드래그할 것
<p>
<textarea id="zone"></textarea>     // 드롭할 장소    
</p>
 
<script>
var ei = document.getElementById("dragtiem");
var ez = document.getElementById("zone");
 
ei.ondragstart = function(event) {          // 드롭 시작 시 처리
    event.dataTransfer.setData("Text"ei.innerHTML);
}                                     // 이벤트 오브젝트에 데이터를 저장
 
ez.ondragover = function(event) {          // 드롭 직전 처리
    event.preventDefault();     // 기본 처리를 무효화
}
 
ez.ondrop = function(event) {               // 드롭 시 처리
    event.target.innerHTML = "";
    var types = event.dataTransfer.types;
    if(types) {
        for(var i = 0; i < type.length; i++) { // 데이터를 꺼냄
            var data = event.dataTransfer.getData(types[i]);
            event.target.innerHTML += "[" + types[i] + "]" + data;
        }
    }
    event.preventDefault();         // 기본 처리를 무효화
}
</script>
</body>  
</html>
cs

 

내용 출처 : HTML5가 보이는 그림책 (ANK Co., Ltd 저, 성안당)

728x90
그리드형(광고전용)

'Programming > HTML5' 카테고리의 다른 글

백그라운드와 오프라인  (0) 2017.05.19
스토리지와 파일  (0) 2017.05.19
그래픽  (0) 2017.05.19
GPS와의 연동  (0) 2017.05.19
멀티미디어 지원  (0) 2017.05.19
태그의 의미 부여  (0) 2017.05.19
콘텐츠 모델 (Contents Model)  (0) 2017.05.19
의미가 바뀐 태그  (0) 2017.05.19
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖