مثال
تنفيذ جافا سكريبت عندما <p> يتم سحب العنصر:
<p draggable="true" ondrag="myFunction(event)">Drag me!</p>
انها محاولة لنفسك » أكثر "Try it Yourself" الأمثلة أدناه.
تعريف والاستخدام
يحدث هذا الحدث ondrag عندما يتم سحب عنصر أو اختيار النص.
السحب والإسقاط هو سمة شائعة جدا في HTML5. ومن عند "grab" كائن واسحبه إلى موقع آخر. لمزيد من المعلومات، يرجى الاطلاع على ملف HTML على HTML5 السحب والإسقاط .
ملاحظة: لجعل عنصر قابل للسحب، استخدم HTML5 العالمية القابلة للسحب السمة.
نصيحة: وصلات، والصور هي القابلة للسحب افتراضيا، ولا تحتاج draggable السمة.
هناك العديد من الأحداث التي يتم استخدامها، ويمكن أن يحدث، في مراحل مختلفة من عملية السحب والإفلات:
- الأحداث أطلق على الهدف القابل للسحب (the source element) :
- ondragstart - يحدث عندما يبدأ المستخدم لسحب عنصر
- ondrag - يحدث عندما يتم سحب عنصر
- ondragend - يحدث عندما ينتهي المستخدم من سحب العنصر
- الأحداث النار على هدف إفلات:
- ondragenter - يحدث عندما يدخل عنصر جر انخفاض الهدف
- ondragover - يحدث عندما يكون عنصر جره هو على هدف إفلات
- ondragleave - يحدث عندما يترك عنصر جر انخفاض الهدف
- ondrop - يحدث عندما يتم إسقاط عنصر جره على هدف إفلات
ملاحظة: على الرغم من سحب عنصر، الحدث ondrag يطلق كل 350 ميلي ثانية.
دعم المتصفح
الأرقام في الجدول تحدد أول نسخة متصفح يدعم بشكل كامل الحدث.
هدف | |||||
---|---|---|---|---|---|
ondrag | 4.0 | تسعة | 3.5 | 6.0 | 12.0 |
بناء الجملة
في HTML:
في جافا سكريبت:
object .ondrag=function(){ انها محاولة لنفسك »
في جافا سكريبت، وذلك باستخدام addEventListener() الأسلوب:
object .addEventListener("drag", myScript );
انها محاولة لنفسك » ملاحظة: addEventListener() لا يتم اعتماد طريقة في Internet Explorer 8 والإصدارات السابقة.
تفاصيل تقنية
فقاعات: | نعم فعلا |
---|---|
للإلغاء: | نعم فعلا |
نوع الحدث: | DragEvent |
علامات HTML المعتمدة: | جميع عناصر HTML |
صفحة DOM: | مستوى 3 أحداث |
مزيد من الأمثلة
مثال
مظاهرة من ALL السحب والإسقاط الأحداث المحتملة:
<p draggable="true" id="dragtarget">Drag me!</p>
<div
class="droptarget">Drop here!</div>
<script>
/* ----------------- Events fired on the drag target
----------------- */
document.addEventListener("dragstart", function(event) {
// The dataTransfer.setData() method sets the data type and the value of the
dragged data
event.dataTransfer.setData("Text", event.target.id);
// Output some text when starting to drag the p element
document.getElementById("demo").innerHTML = "Started to drag the p
element.";
// Change the opacity of the
draggable element
event.target.style.opacity = "0.4";
});
// While dragging the p element, change the color
of the output text
document.addEventListener("drag", function(event) {
document.getElementById("demo").style.color = "red";
});
// Output
some text when finished dragging the p element and reset the opacity
document.addEventListener("dragend", function(event) {
document.getElementById("demo").innerHTML = "Finished dragging the p
element.";
event.target.style.opacity = "1";
});
/* ----------------- Events fired on the drop target
----------------- */
// When the draggable p element enters the
droptarget, change the DIVS's border style
document.addEventListener("dragenter", function(event) {
if (
event.target.className == "droptarget" ) {
event.target.style.border =
"3px dotted red";
}
});
// By default, data/elements cannot be dropped in
other elements. To allow a drop, we must prevent the default handling of the
element
document.addEventListener("dragover", function(event) {
event.preventDefault();
});
// When the draggable p element leaves
the droptarget, reset the DIVS's border style
document.addEventListener("dragleave", function(event) {
if (
event.target.className == "droptarget" ) {
event.target.style.border = "";
}
});
/* On drop - Prevent the browser default handling of the data
(default is open as link on drop)
Reset the color of the output text and
DIV's border color
Get the dragged data with the dataTransfer.getData() method
The dragged data is the id of the dragged
element ("drag1")
Append the dragged element into the drop element
*/
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>
انها محاولة لنفسك » صفحات ذات صلة
HTML دروس: سحب وإسقاط HTML5
HTML المرجعي: HTML سمة القابل للسحب
كائن الحدث