메뉴 건너뛰기

조회 수 2891 추천 수 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
번호 제목 날짜 조회 수
139 디자인 셀렉트 박스 & CSS 2016.12.22 6347
» 드래그 & 드랍 구현 - on()[이벤트리스너] file 2018.09.06 2891
137 동적으로 콤보(select)의 항목(option) 생성하기 2016.09.21 14374
136 다중 select 2021.03.31 316
135 다른 프레임에 있는 객채 참조하는 방법 2016.09.21 6471
134 날짜 검색 범위 정하기 (jquery) file 2016.11.17 7320
133 기본 동작 막기 2021.03.25 284
132 금액단위 제거 표기 2016.12.22 6217
131 검토하기: jQuery를 이용하여 form 처리하기 2017.03.02 7513
130 강제 click 이벤트 발생 2016.09.09 7734
129 간단한 스크롤 따라 움직이는 메뉴 만들기 2021.03.26 725
128 간단한 세로 메뉴 file 2016.09.21 7306
127 간단한 마우스 포인터 따라 다니기 2021.03.26 594
126 각종 다이어그램 플러그인 / 차트 / 관계 플러그인 2016.09.09 9489
125 [jQuery] 확인 창(confirm), 페이지 이동(location.replace) 2018.09.06 2652
124 [jQuery] 이용 아이디 중복체크 실시간 2016.09.11 8876
123 [jQuery] 셀렉트박스에서 특정 옵션 선택시 레이어 나타내기 2018.09.27 2553
122 [jQuery] 라디오(radio) 버튼, 체크박스(checkbox) 선택/해제 하는 방법 2019.03.05 1129
121 [jQuery] split, join 으로 공백제거 하기 2018.09.06 2146
120 [jQuery] input 박스에 maxlength 만큼 입력했을 때 자동으로 다음 박스로 이동하기 2018.09.06 1819
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved