JavaScript

[DOM_Event] JS - dragenter 이벤트 (= ondragenter 속성) - 드래그진입 (= 드래그엔터이벤트)

목차
  1. dragenter 예제 - 드래그 진입 이벤트
  2. dragenter 정의
  3. dragenter 구문
  4. dragenter 예제 - JS addEventListener() 메서드 이용 방식

 

dragenter 예제 - 드래그 진입 이벤트 

 

<style>

.droptarget {

  float: left; 

  width: 150px; 

  height: 80px;

  margin: 15px;

  margin-right: 100px;

  padding: 10px;

  border: 1px solid gray;

}

p {clear:both; margin-top:30px;}

</style>


<div class="droptarget" ondrop="drop(event)" ondragenter="dragEnter(event)" ondragleave="dragLeave(event)" ondragover="allowDrop(event)">

  <p ondragstart="dragStart(event)" draggable="true" id="dragtarget">Homzzang.com</p>

</div>


<div class="droptarget" ondragenter="dragEnter(event)" ondragleave="dragLeave(event)" ondrop="drop(event)" ondragover="allowDrop(event)"></div>


<p id="demo"></p>


<script>

function dragStart(event) {

  event.dataTransfer.setData("Text", event.target.id);

}


function dragEnter(event) {

  if ( event.target.className == "droptarget" ) {

    document.getElementById("demo").innerHTML = "다른 상자 진입";

    event.target.style.border = "3px dotted red";

  }

}


function dragLeave(event) {

  if ( event.target.className == "droptarget" ) {

    document.getElementById("demo").innerHTML = "기존 상자 이탈";

    event.target.style.border = "";

  }

}


function allowDrop(event) {

  event.preventDefault();

}


function drop(event) {

  event.preventDefault();

  var data = event.dataTransfer.getData("Text");

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

}

</script> 

 

결과보기

 

dragenter 정의

 

드래그 가능한 요소 또는 선택된 텍스트가 유효한 드롭영역에 들어갈 때 발생.

 


 

이벤트확산: O
취소가능성: O

이벤트타입: DragEvent

지원 HTML: 모든 HTML 요소

DOM 버전: Level 3 Events

 

 

dragenter 구문

 

HTML 속성 이용 방식

<element ondragenter="homzzang()">

 

JS 속성 이용 방식

object.ondragenter = function(){homzzang()};

 

JS 메서드 이용 방식

object.addEventListener("dragenter", homzzang);

 


PS.

 

1.

homzzang : 실행함수명.
※ 함수명 자리에 실행코드 직접 입력 가능.


2.

addEventLister() 방식 주의사항 2가지. ★

① 이벤트명에 on 안 붙임. 

② 실행함수명 뒤에 소괄호 안 붙임.


3.

addEventListener() 메서드는 IE9 이상 지원. 

 


dragenter 예제 - JS addEventListener() 메서드 이용 방식


<style>

.droptarget {

  float: left; 

  width: 150px; 

  height: 55px;

  margin: 15px;

  padding: 10px;

  border: 1px solid gray;

}

</style>


<div class="droptarget">

  <p draggable="true" id="dragtarget">Homzzang.com</p>

</div>

 

<div class="droptarget"></div>



<p id="demo"></p>


<script>

/* Drag 대상에 촉발된 이벤트 */    

  

document.addEventListener("dragstart", function(event) { // P요소 드래그 시작 후

  event.dataTransfer.setData("Text", event.target.id); // 드래그된 데이터 타입과 값 지정.  

  document.getElementById("demo").innerHTML = "p 요소 드래그 시작.";  

  event.target.style.opacity = "0.4"; // 드래그중 요소의 투명도 조정

});


document.addEventListener("drag", function(event) { // P요소 드래그 중

  document.getElementById("demo").style.color = "red"; 

});


document.addEventListener("dragend", function(event) { // P요소 드래그 완료 후

  document.getElementById("demo").innerHTML = "p 요소 드래그 완료.";

  event.target.style.opacity = "1";

});


/* Drop 대상에 촉발된 이벤트 */


document.addEventListener("dragenter", function(event) { // div요소에 들어올 때

  if ( event.target.className == "droptarget" ) {

    event.target.style.border = "3px dotted red";

  }

});


document.addEventListener("dragover", function(event) { // 요소 드롭방지 기본동작 차단. (= 드롭 허용)

  event.preventDefault();

});


document.addEventListener("dragleave", function(event) { // div요소를 떠날 때

  if ( event.target.className == "droptarget" ) {

    event.target.style.border = "";

  }

});


document.addEventListener("drop", function(event) {

  event.preventDefault(); // 드롭시 링클로 열리는 기본동작차단 (= 단순이동)

  if ( event.target.className == "droptarget" ) {

    document.getElementById("demo").style.color = "";

    event.target.style.border = "";

    var data = event.dataTransfer.getData("Text"); // 이동된 데이터 가져오기

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

  }

});

</script>

 

결과보기


방문 감사합니다. (즐겨찾기 등록: Ctrl + D)

분류 제목
DOM_Event JS - Event 종류 ★ - 이벤트부착 / 이벤트종류 / 이벤트속성 / 이벤트메서드
DOM_Event JS - abort 이벤트 (= onabort 속성) - 미디어로드중단 (= 온어보트이벤트, IE9)
DOM_Event JS - afterprint 이벤트 (= onafterprint 속성) - 인쇄모드이벤트 (= 인쇄시작 / …
DOM_Event JS - animationend 이벤트 (= onanimationend 속성) - 애니완료이벤트 (= 애니종…
DOM_Event JS - animationiteration 이벤트 (= onanimationiteration 속성) - CS…
DOM_Event JS - animationstart 이벤트 (= onanimationstart 속성) - CSS 애니메인션 …
DOM_Event JS - beforeprint 이벤트 (= onbeforeprint 속성) - 인쇄모드 인쇄대화상자 나타나기…
DOM_Event JS - beforeunload 이벤트 (= onbeforeunload 속성) - 웹문서 언로드 (= 사이트…
DOM_Event JS - blur 이벤트 (= onblur 속성) - 포커스제거이벤트 (= 포커스해제이벤트 = 블러이벤트)
DOM_Event JS - canplay 이벤트 (= oncanplay 속성) - 동영상재생가능 (= 비디오재생가능/오디오재생…
DOM_Event JS - canplaythrough 이벤트 (= oncanplaythrough 속성) - 버퍼링중지없이 재생…
DOM_Event JS - change 이벤트 (= onchange 속성) ★ - 요소값변경이벤트 (= 체인지이벤트 = 온체인…
DOM_Event JS - click 이벤트 (= onclick속성 = 온클릭이벤트) ★ - 마우스클릭이벤트
DOM_Event JS - contextmenu 이벤트 (oncontextmenu 속성) - 마우스오른쪽메뉴선택 (= 컨텍스트…
DOM_Event JS - copy 이벤트 (= oncopy 속성) - 복사이벤트 (= copy이벤트 = 카피이벤트) ※ 복사…
1/12
목록
  • 채팅방
  • 필독
1. 채팅창 헤드에서 접속자 확인 2. 닉네임 클릭해 1:1 채팅 가능 3. 닉네임 클릭해 귓속말 가능 4. 닉네임 클릭해 호출하기 가능 5. 우하단 클릭해 환경 설정 가능 6. 의뢰글 작성 후 의뢰 상담 가능 7. 질문글 작성 후 질문 상담 가능 8. 채팅방에 개인정보 입력 금지 9. 채팅방에 광고 욕설 비방 금지
 홈  PC버전 로그인 일본어
웹디자인언어
서버관리언어
고급코딩언어
그누보드
제작의뢰
Q&A
커뮤니티 1
웹유틸
회원센터
홈짱닷컴 PC버전 로그인