드래그 앤 드롭은 일반적인 기능, 즉 캡처 객체 후에 다른 위치로 드래그합니다.
HTML5에서 드래그 앤 드롭은 표준 부분이며 모든 요소를 드래그 및 떨어 뜨릴 수 있습니다.
먼저 작은 예제를 클릭하십시오 : 사용자가 <p> 요소를 끌기 시작하면 JavaScript를 실행합니다.
<p draggable = true ondragstart = myFunction (이벤트)> 드래그>
팁 : 링크와 사진은 기본적으로 드래그되며 드래그 가능한 속성이 필요하지 않습니다.
정의 및 사용법드래그 앤 드롭 프로세스 중에 다음 이벤트가 트리거됩니다.
Internet Explorer 9+, Firefox, Opera, Chrome 및 Safari 지원 드래그.
참고 : Safari 5.1.2는 드래그 요소를 지원하지 않습니다.
사례먼저 코드를 게시 한 다음 하나씩 설명하십시오.
<! 테두리 : 1px Solid #AAAAAA;} </style> </head> <body> <p> 직사각형 상자로 IMG_W3SLOGO.gif 사진을 드래그 : </p> <div id = div1 ondrop = drop (event) ondragover = allowdrop (t)> </div> <br> <img id = drag1 src = images/img_w3slogo = true ondragstatatrt = drag (이벤트) 너비 = 300 높이 = 56> <cript> 함수 al lowdrop (ev) { ev.preventDefalt ();} 함수 드래그 (ev) {ev.datatransfer.setData (text, ev.target.id);} 함수 drop (ev.preventDefault (); ;
드래그 전 페이지의 효과는 다음과 같습니다.
아래 코드의 의미를 분석 해 봅시다.
설정 요소를 드래그 및 떨어 뜨릴 수 있습니다우선, 요소를 드래그하기 위해 드래그 가능한 속성을 true로 설정하십시오.
<img draggable = true>드래그 드래그 스테이트 및 setData ()
그런 다음 요소가 드래그 될 때 발생하는 일이 지정됩니다.
위의 예에서, OnDragStart 속성은 DRACDED 데이터를 지정하는 함수, DRAR (이벤트)을 호출합니다.
datatransfer.setData () 메소드 설정 데이터 드래그 데이터의 데이터 유형과 값을 설정합니다.
함수 드래그 (EV) {ev.datatransfer.setData (Text, ev.target.id);}
이 예에서는 데이터 유형이 텍스트이고 값은 요소를 드래그 할 수있는 id (drag1)입니다.
it-ondragover를 넣을 위치OnDragover 이벤트는 드래그 된 데이터를 배치 할 위치를 규정합니다.
기본값, 데이터/요소는 다른 요소에 배치 할 수 없습니다. 허용 가능한 배치를 설정 해야하는 경우 요소의 기본 처리를 방지해야합니다.
ondragover 이벤트의 이벤트를 호출하는 것입니다. :) :
event.preventDefault ()퍼팅-론
드래그 데이터가 배치되면 드롭 이벤트가 발생합니다.
위의 예에서 ondrop 속성은 함수, drop (이벤트)을 호출합니다.
함수 드롭 (ev) {ev.preventDefault ();
코드 설명 :
구현의 결과는 그림과 같습니다.
Datatransfer 객체드래그 작업 중에 Datatransfer 객체를 사용하여 드래그 작업이 끝날 때 데이터에서 다른 작업을 수행하기 위해 데이터를 전송할 수 있습니다.
객체 속성 :함수 dragstart_handler (EV) {console.log (dragstart); // 데이터 전송 객체에 추가 = p1 draggable = true ondragstart = dragstart_handler (이벤트);드래그의 데이터를 정의합니다
함수 dragstart_handler (EV) {// 드래그 데이터 추가 ev.datatransfer.setData (text/plain, ev.target.id); ;드래그 이미지를 정의하십시오
함수 DragStart_handler (EV) {// 이미지를 작성한 다음 기존 이미지로 변경하면 기본 드래그 이미지가 사용됩니다 (); img.rc = 'exp.gif';드래그 효과를 정의하십시오
함수 DragStart_handler (EV) {// DROPETRANSFER.DROPEFFECT = COPY;} 복사하기 위해 드래그 효과를 설정합니다.드롭 존을 정의하십시오
함수 dragover_handler (ev) {ev.preventDefault (); 대상의 Domine Data = Ev.datatransfer.getData (ev.target.appendChild); div> </body>Firefox 브라우저 드래그 문제
그러나 여기로 가서 Firefox 브라우저에서 문제를 찾으십시오.
HTML5의 드래그는 PERVERDEFAULT를 사용하여 POP -UP 페이지가 나타나는 것을 방지하지만 Firefox에서는 작동하지 않습니까?
해결책:
body.ondRop = function (event) {event.preventDefault ();
또는 위의 예에서는 Ondrop 메소드에 추가 할 수도 있습니다.
함수 (EV) {EV.PreventDefault ();
위는이 기사의 모든 내용입니다.