메뉴 건너뛰기

조회 수 2889 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

1. 정의

- on()와 드래그&드랍 리스너를 이용하여 구현

1) 드래그 & 드롭 이벤트

 분류

이벤트 

발생타이밍 

드래그 

dragstart 

드래그를 시작 

 

drag 

드래그 중 

 

dragend 

드래그 종료 

드롭 

dragenter 

드래그 요소가 드롭 영역에 들어감 

 

dragover 

드래그 요소가 드롭 영역에 있다 

 

dragleave 

드래그 요소가 드롭 영역 벗어남 

 

drop 

드롭 



2. 예제



<!DOCTYPE html>
 
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .main{
            width: 300px;
            height:300px;
            border: 1px solid black;
        }
        .drop {
            width: 300px;
            height:300px;
            border: 1px solid black;
        }
    </style>
</head>
 
<div class="main">
    <img src="small.png" id="drag" draggable="true"/>
</div>
<hr>
<div class="drop" id="drop"></div>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
<script>
    $(function(){
        $('#drag').on({
            //드래그 시작시 요소 id 저장
            'dragstart':function(e){
                e.originalEvent.dataTransfer.setData('text',e.target.id);
                $(this).css('border','solid 2px Red');
            },
            //드래그 종료
            'dragend':function(e){
                $(this).css('border','none');
            }
        });
 
        $('#drop').on({
            'dragenter':function(e){
                $(this).css('background-color','#fc0');
            },
            'dragleave':function(e){
                $(this).css('background-color','#ffc');
            },
            //브라우저 표중 동작 취소
            'dragover':function(e){
                e.preventDefault();
            },
            'drop':function(e){
                $(e.target).append($('#'+e.originalEvent.dataTransfer.getData('text')));
                e.preventDefault();
            }
        });
    });
</script>




1) draggable = true

- 드래그 하고자 하는 태그에 속성을 부여한다

a. 기본으로 true로 정해진 태그

- 선택된 텍스트

- href

- src

2) DataTransfer

드래그 정보 관리

- 정보 셋팅: setData(키,값)

e.originalEvent.dataTransfer.setData('text',e.target.id);

- 정보 취득 : getData(키)

+e.originalEvent.dataTransfer.getData('text')

 값으로 텍스트, 혹은 url 지정

3) preventDefault

- 브라우저의 표중 동작이 우선처리되어 드롭 조작을 방해 할수 있다

기본 동작을 취할 수 있도록 설정

4) originalEvent 프로퍼티

- 드래그&드롭의 고유 이벤트 프로퍼티

- jQuery : e.originalEvent.dataTransfer

- javascript : e.dataTransfer





List of Articles
번호 제목 날짜 조회 수
179 흐르는 배너 만들기2 2016.12.22 8361
178 화면 이동시에 레이어가 따라다니게 하기 2016.09.21 7141
177 행에 징검다리 스타일 입히기 (:odd, :even) 2021.03.31 210
176 항상 최신버전으로 사용하기 2021.03.26 283
175 항상 레이어가 정 가운데 위치하는 스크립트 2016.12.22 6908
174 하단 고정 레이어 스타일(CSS) 따라하기 2016.12.22 7732
173 페이지 이동 제어 - href, replace, pushState() 2018.09.06 2620
172 파일 업로드 방법, 이미지 파일 업로드 예제 소스 2017.03.06 9028
171 특정영역 제외하고 body 클릭 2018.09.28 3610
170 텍스트 필드에 기본글이 마우스 클릭하면 지워지게 하기 폼필드 소스 내에 아래 태그를 삽입한다. 2019.06.04 867
169 터치 디바이스 분기처리 2018.11.07 1278
168 키보드 이벤트가 발생한 객체의 id값 알아내기 2016.09.21 7530
167 최초 접속시 css와 script가 로딩되지 않을때 2021.03.25 322
166 체크박스 전체선택/해지 2019.06.04 780
165 체크박스 또는 라디오 버튼의 체크여부 변경하기 2016.09.21 6667
164 중복 없는 랜덤 2018.11.07 2017
163 제이쿼리에서 클래스(class) 이름 추가/삭제 2021.03.31 233
162 정규식, 한글 못쓰게 하기, replace all 2021.03.26 842
161 입력폼에 입력되는 값의 유효성 체크하기 두번째 file 2018.09.06 1835
160 이미지 회전, rotate(); 2020.11.25 1450
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved