HTML5 드래그 앤 드롭 데이터 전송
네이티브 드래그 앤 드롭은 dragstart, drag 및 dragend 이벤트를 통해 구현됩니다. 하지만 이것은 단지 드래그 앤 드롭일 뿐입니다. IE6과 IE7에는 여전히 드래그 앤 드롭 문제가 있으며 데이터 교환이 구현되지 않습니다. 데이터 교환을 실현하기 위해 IE5에서는 dataTransfer 개체를 도입했습니다. dataTransfer 객체는 드래그된 요소에서 드롭 대상으로 문자열 형식의 데이터를 전송하는 데 사용되는 이벤트 객체의 속성입니다. dataTransfer 객체는 이벤트 객체의 속성이기 때문에 드래그 앤 드롭 이벤트의 이벤트 핸들러 내에서만 액세스할 수 있습니다. 이벤트 핸들러에서 이 개체의 속성과 메서드를 사용하여 끌어서 놓기 기능을 완료할 수 있습니다.
dataTransfer 객체에는 getData() 메서드와 setData() 메서드라는 두 가지 주요 메서드가 있습니다. 이 두 가지 방법의 영어 문자적 의미를 통해 대략적으로 용도를 추측할 수 있습니다. getData() 메서드는 setData() 메서드에서 저장한 값을 가져올 수 있습니다. getData() 메소드의 유일한 매개변수이기도 한 setData() 메소드의 첫 번째 매개변수는 데이터 유형을 저장하는 데 사용되는 문자열이며 값은 "text" 또는 "URL"입니다.
IE는 "텍스트" 또는 "URL"이라는 두 가지 유효한 데이터 유형만 정의하는 반면, HTML5는 이를 확장하여 다양한 MIME 유형을 지정할 수 있습니다. 이전 버전과의 호환성을 위해 HTML5는 "text" 또는 "URL"도 지원하지만 이 두 유형은 "text/plain" 또는 "text/url-list"에 매핑됩니다.
실제로 dataTransfer 객체는 각 MIME 유형에 대한 값을 저장할 수 있습니다. 즉, 동료가 이 개체에 텍스트 조각과 URL을 저장하면 다른 문제가 발생하지 않습니다. 그러나 dataTransfer 객체에 저장된 데이터는 drop 이벤트 핸들러에서만 읽을 수 있습니다. ondrop 핸들러에서 데이터를 읽지 않으면 dataTransfer 객체가 삭제되고 데이터가 손실됩니다.
텍스트 상자의 텍스트를 드래그하면 브라우저는 setData() 메서드를 호출하고 드래그된 텍스트를 dataTransfer 개체에 "텍스트" 형식으로 저장합니다. 마찬가지로 링크나 이미지를 드래그 앤 드롭하면 setData() 메서드가 호출되고 URL이 저장됩니다. 그런 다음 이러한 요소를 드롭 대상으로 드래그 앤 드롭하면 getData() 메서드를 통해 데이터를 읽을 수 있습니다. 물론 개발자로서 나중에 사용하기 위해 dragstart 이벤트 핸들러에서 setData()를 호출하여 전송하려는 데이터를 수동으로 저장할 수도 있습니다.
데이터를 텍스트로 저장하는 것과 URL로 저장하는 것은 차이가 있습니다. 데이터를 텍스트 형식으로 저장하면 해당 데이터는 특별한 처리를 받지 않습니다. URL 형식으로 저장하면 브라우저는 이를 웹 페이지의 링크로 처리합니다. 이 URL을 다른 브라우저 창에 배치하면 해당 URL을 열 수 있습니다.
Firefox 5 이하 버전에서는 "url" 및 "text"를 "" 및 "text/plain"에 매핑할 수 없습니다. 그러나 "Text"(대문자 T)를 "text/plain"에 매핑할 수 있습니다. 크로스 브라우저 상황에서 dataTransfer 객체로부터 데이터를 더 잘 얻기 위해서는 URL 데이터를 얻을 때 두 개의 값을 감지하고, 텍스트 데이터를 얻을 때 "Text"를 사용하는 것이 가장 좋습니다.
IE10 및 이전 버전은 여전히 확장 MIME 유형 이름을 지원하지 않으며 인식할 수 없는 데이터 유형이 발견되면 오류를 보고하므로 짧은 데이터 유형을 먼저 입력해야 합니다. 그러나 "text" 또는 "URL" 값은 IE에서만 필수입니다. Firefox 3.6+에서는 문자열을 다른 값으로 설정하면 Chrome 및 Opera도 정상적으로 실행될 수 있습니다.
dropEffect 속성 및 effectAllowed 속성
dataTransfer 객체를 사용하면 데이터를 전송할 수 있을 뿐만 아니라 드래그된 요소와 배치 대상인 요소가 dataTransfer 객체를 통해 어떤 작업을 받을 수 있는지도 결정됩니다. 이러한 기능을 달성하기 위해 dropEffect 속성과 effectAllowed 속성이 사용됩니다.
dropEffect 속성
그 중 dropEffect 속성을 통해 드래그된 요소가 어떤 동작을 수행할 수 있는지 알 수 있습니다. 이 속성의 네 가지 값은 다음과 같습니다.
none: 드래그한 요소를 여기에 배치할 수 없습니다. 이는 텍스트 상자를 제외한 모든 요소의 기본값입니다.
이동: 드래그한 요소를 드롭 대상으로 이동해야 합니다.
복사: 드래그한 요소를 드롭 대상에 복사해야 합니다.
링크: 대상을 배치하면 드래그된 요소가 열립니다(단, 드래그된 요소는 URL 주소가 있는 링크여야 합니다).
요소를 드롭 대상으로 드래그할 때 위의 각 값에 따라 커서가 다른 기호로 표시됩니다.
effectAllowed 속성
dropEffect 속성만으로는 유용하지 않습니다. effectAllowed 속성과 함께 사용할 때만 효과적입니다. effectAllowed 속성은 요소 드래그의 어떤 동작이 허용되는지를 나타냅니다(dropEffect). effectAllowed 속성에도 많은 값이 있으며 해당 값은 다음과 같습니다.
uninitialized: 드래그된 요소에 대해 배치 동작이 설정되지 않았습니다.
없음: 드래그된 요소는 어떤 동작도 할 수 없습니다.
copy: 값이 "copy"인 dropEffect만 허용됩니다.
link: 값이 "link"인 dropEffect만 허용됩니다.
move: 값이 "move"인 dropEffect만 허용됩니다.
copyLink: "복사" 및 "링크" 값으로 dropEffect를 허용합니다.
copyMove: "복사" 및 "이동" 값으로 dropEffect를 허용합니다.
linkMove: "link" 및 "move" 값으로 dropEffect를 허용합니다.
all: 모든 dropEffect를 허용합니다.
effectAllowed 속성을 설정하려면 ondragstart 이벤트 핸들러에서 설정해야 합니다. 작은 예는 다음과 같습니다
HTML 코드
<ul> <li draggable="true">梦龙小站</li> <li draggable="true">梦龙小站</li> <li draggable="true">梦龙小站</li> </ul> <a href="http://www.baidu.com/">梦龙小站</a> <p id="p1">梦龙小站</p>
CSS 코드
li{ width:100px; height:30px; border:1px #000000 solid; margin:20px; list-style:none;} #p1{ width:100px; height:100px; background:red; margin:300px;}
JavaScript 코드
//dataTransfer对象 : 连接拖拽细节的 ,在event对象下面的 //拖动不带链接的li,会起作用但不跳转链接 //拖动带连接的a,会起作用也跳转 window.onload = function(){ var aLi = document.getElementsByTagName('li'); var aA = document.getElementsByTagName('a'); var op = document.getElementById('p1'); for(var i=0;i<aLi.length;i++){ aLi[i].ondragstart = function(ev){ //拖拽前触发 this.style.background = 'yellow'; ev.dataTransfer.setData('a','hello'); //存储一个键值对 : value值必须是字符串 ev.dataTransfer.effectAllowed = 'all'; ev.dataTransfer.setDragImage(this,0,0); }; aLi[i].ondragend = function(){ //拖拽结束触发 this.style.background = ''; }; } for(var i=0;i<aA.length;i++){ aA[i].ondragstart = function(ev){ //拖拽前触发 this.style.background = 'yellow'; ev.dataTransfer.setData('a','hello'); //存储一个键值对 : value值必须是字符串 ev.dataTransfer.effectAllowed = 'link'; ev.dataTransfer.setDragImage(this,0,0); }; aA[i].ondragend = function(){ //拖拽结束触发 this.style.background = ''; }; } op.ondragenter = function(){ //相当于onmouseover this.style.background = 'green'; }; op.ondragleave = function(){ //相当于onmouseout this.style.background = 'red'; }; op.ondragover = function(ev){ //进入目标、离开目标之间,连续触发 ev.preventDefault(); //阻止默认事件:元素就可以释放了 ev.dataTransfer.dropEffect = 'link'; //真对外部文件 }; op.ondrop = function(ev){ //释放鼠标的时候触发 this.style.background = 'red'; alert( ev.dataTransfer.getData('a') ); }; };
위는 실제 전투와 HTML5 기본 드래그 앤 드롭 분석(3개의 dataTransfer 개체) 관련 내용을 더 보려면 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!

microdatainhtml5enhancesseoanduserexperiencebyprovidingstructureddatatosearchengines.1) useitemscope, itemtype, anditempropattriptomArkContentlikeProductSorevents.2) testMicrodataWithTools likeSgoogle'sStructureddatestStingStingStingStingSugingjson-ld

html5introducesnewinpestenhanceuserexperience, simplifydevelopment 및 improveAcessibility.1) 자동 ValidatesEmailformat.2) andsimplifydateandtimeinputs, retgenedforcustomsolutions.

H5는 HTML의 다섯 번째 버전 인 HTML5입니다. HTML5는 웹 페이지의 표현력과 상호 작용성을 향상시키고 시맨틱 태그, 멀티미디어 지원, 오프라인 스토리지 및 캔버스 드로잉과 같은 새로운 기능을 소개하며 웹 기술 개발을 촉진합니다.

웹 사이트에는 접근성 및 네트워크 표준 준수가 필수적입니다. 1) 접근성은 모든 사용자가 웹 사이트에 동등하게 액세스 할 수 있도록 보장합니다. 2) 네트워크 표준은 웹 사이트의 접근성 및 일관성을 향상시키기 위해, 3) 접근성은 시맨틱 HTML, 키보드 내비게이션, 색상 대비 및 대체 텍스트를 사용해야합니다.

HTML의 H5 태그는 작은 타이틀 또는 하위 타이틀을 태그하는 데 사용되는 5 레벨 타이틀입니다. 1) H5 태그는 컨텐츠 계층을 개선하고 가독성과 SEO를 개선하는 데 도움이됩니다. 2) CSS와 결합하여 스타일을 사용자 정의하여 시각적 효과를 향상시킬 수 있습니다. 3) 학대를 피하고 논리적 컨텐츠 구조를 보장하기 위해 H5 태그를 합리적으로 사용하십시오.

HTML5에서 웹 사이트를 구축하는 방법에는 다음이 포함됩니다. 1. 의미 태그를 사용하여 웹 페이지 구조를 정의하는 등; 2. 멀티미디어 컨텐츠, 사용 및 태그를 포함; 3. 양식 검증 및 로컬 스토리지와 같은 고급 기능을 적용하십시오. 이 단계를 통해 명확한 구조와 풍부한 기능을 갖춘 최신 웹 페이지를 만들 수 있습니다.

합리적인 H5 코드 구조를 사용하면 페이지가 많은 컨텐츠 중에서 눈에 띄게 나타납니다. 1) 구조를 명확하게하기 위해 컨텐츠를 구성하려면 시맨틱 레이블 등을 사용하십시오. 2) Flexbox 또는 그리드와 같은 CSS 레이아웃을 통해 다른 장치에 대한 페이지의 렌더링 효과를 제어하십시오. 3) 반응 형 디자인을 구현하여 페이지가 다른 화면 크기에 맞게 조정되도록하십시오.

HTML5 (H5)와 이전 버전의 HTML의 주요 차이점은 다음과 같습니다. 1) H5는 시맨틱 태그를 소개하고, 2) 멀티미디어 컨텐츠를 지원하며 3) 오프라인 스토리지 기능을 제공합니다. H5는 새로운 태그 및 API (예 : 및 태그)를 통해 웹 페이지의 기능과 표현성을 향상시켜 사용자 경험 및 SEO 효과를 향상 시키지만 호환성 문제에주의를 기울여야합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)