HTML Drag and Drop API
HTML ड्रैग एंड ड्रॉप एपीआई आपको किसी तत्व को खींचने और छोड़ने की अनुमति देता है।
प्रक्रिया:
नीचे दी गई जैसिफ़ टीम छवि को दूसरे आयत में खींचें और छोड़ें।
खींचें और छोड़ें
ड्रैग एंड ड्रॉप एक बहुत ही सामान्य सुविधा है। यह तब होता है जब आप किसी वस्तु को "पकड़" लेते हैं और उसे किसी अन्य स्थान पर खींचते हैं।
ब्राउज़र समर्थन
तालिका में संख्याएँ पहले ब्राउज़र संस्करण का प्रतिनिधित्व करती हैं जो ड्रैग और ड्रॉप का पूरी तरह से समर्थन करता है।
| API | Chrome | Edge | Firefox | Safari | Opera |
|---|---|---|---|---|---|
| Drag and Drop | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
HTML ड्रैग एंड ड्रॉप एपीआई उदाहरण
नीचे दिया गया उदाहरण एक सरल ड्रैग और ड्रॉप उदाहरण है:
उदाहरण
<!DOCTYPE HTML>
<html>
<head>
<script>
function dragstartHandler(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function dragoverHandler(ev) {
ev.preventDefault();
}
function dropHandler(ev) {
ev.preventDefault();
const data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<div id="div1" ondrop="dropHandler(event)" ondragover="dragoverHandler(event)"></div>
<img id="img1" src="img_logo.gif" draggable="true" ondragstart="dragstartHandler(event)" width="336" height="69">
</body>
</html>
यह जटिल लग सकता है, लेकिन आइए ड्रैग एंड ड्रॉप इवेंट के विभिन्न हिस्सों को देखें।
किसी तत्व को खींचने योग्य बनाना
पहला: किसी तत्व को खींचने योग्य बनाने के लिए,draggableगुणtrueकरने के लिए सेट:
उदाहरण
<img id="img1" draggable="true">
या:
उदाहरण
<p id='p1'खींचने योग्य=सत्य'>खींचने योग्य पाठ</p>
क्या खींचें - ऑनड्रैगस्टार्ट और सेटडेटा()
इसके बाद, निर्दिष्ट करें कि तत्व खींचे जाने पर क्या होना चाहिए।
उपरोक्त उदाहरण में,<img>उपुपाबाद मेंondragstartविशेषता एक फ़ंक्शन है (dragstartHandler(ev)) कॉल, जो निर्दिष्ट करता है कि कौन सा डेटा निकालना है।
dataTransfer.setData()विधि निकाले जाने वाले डेटा का डेटा प्रकार और मान निर्धारित करती है:
उदाहरण
function dragstartHandler(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
इस मामले में, डेटा प्रकार "टेक्स्ट" है और ड्रैग करने योग्य तत्व में मान आईडी ("img1") है।
कहां छोड़ें - ऑनड्रैगओवर
<div>उपुपाबाद मेंondragoverविशेषता एक फ़ंक्शन है (dragoverHandler(ev)) कॉल, जो निर्दिष्ट करती हैं कि खींचा गया डेटा कहां छोड़ा जा सकता है।
डिफ़ॉल्ट रूप से, डेटा/तत्वों को अन्य तत्वों में नहीं छोड़ा जा सकता है। रिलीज़ की अनुमति देने के लिए, हमें तत्व में डिफ़ॉल्ट हेरफेर को ब्लॉक करना होगा।
यह हैondragoverघटना के लिएpreventDefault()यह विधि को कॉल करके किया जाता है:
उदाहरण
function dragoverHandler(ev) {
ev.preventDefault();
}
ऑनड्रॉप - ऑनड्रॉप
जब खींचा गया डेटा गिरा दिया जाता है, adropघटना घटती है.
उपरोक्त उदाहरण में,<div>उपुपाबाद मेंondropगुणdropHandler(event)फ़ंक्शन को कॉल करना:
उदाहरण
function dropHandler(ev) {
ev.preventDefault();
const data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
कोड स्पष्टीकरण:
- ब्राउज़र द्वारा डेटा की डिफ़ॉल्ट हैंडलिंग को रोकने के लिए
preventDefault()कॉल करें (यदि डिफ़ॉल्ट छोड़ दिया जाए तो लिंक के रूप में खुलता है) dataTransfer.getData()विधि से निकाला जाने वाला डेटा प्राप्त करें. इस तरहsetData()विधि उसी प्रकार का कोई भी डेटा सेट लौटाती है- खींचा जाने वाला डेटा खींचे गए तत्व की आईडी ("img1") है
- खींचे गए तत्व को गिराए गए तत्व से जोड़ें
घटनाओं को खींचें
जब तत्व खींचने लगता है
जब तत्व खींचा जाता है
जब खींचा हुआ तत्व जाल में प्रवेश करता है
जब खींचा गया तत्व जाल के ऊपर हो
जब खींचा गया तत्व जाल छोड़ देता है
जब खींचा गया तत्व छोड़ा जाता है
जब ड्रैग ऑपरेशन समाप्त हो जाए
इंटरैक्टिव दृष्टिकोण
तरीके:
नीचे दिए गए "खींचें और छोड़ें तत्व" को "लक्ष्य भाग" में खींचें और छोड़ें।
तत्व खींचें और छोड़ें
कार्यप्रणाली नोट:
खींचने योग्य तत्व को स्रोत पर वापस ले जाया जा सकता है। पूरी प्रक्रिया की निगरानी की जाती है.
और ज्यादा उदाहरण
उदाहरण: <h1> तत्व को <div> तत्व पर खींचें और छोड़ें
<script>
function dragstartHandler(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function dragoverHandler(ev) {
ev.preventDefault();
}
function dropHandler(ev) {
ev.preventDefault();
const data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
</script>
<div id="div1" ondrop="dropHandler(event)" ondragover="dragoverHandler(event)"></div>
<h1 id="h1" draggable="true" ondragstart="dragstartHandler(event)">JassifTeam.com</h1>
उदाहरण: <a> तत्व को <div> तत्व पर खींचना और छोड़ना
<script>
function dragstartHandler(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function dragoverHandler(ev) {
ev.preventDefault();
}
function dropHandler(ev) {
ev.preventDefault();
const data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
</script>
<div id="div1" ondrop="dropHandler(event)" ondragover="dragoverHandler(event)"></div>
<a id="link1" href="https://jassifteam.com" draggable="true" ondragstart="dragstartHandler(event)">JassifTeam.com</a>