رویداد ondragend
پیشنهاد درس:
تعریف و استفاده:
وقتی کاربر عملیات کشیدن عنصر یا انتخاب متن به پایان میرسد، رویداد ondragend رخ میدهد. کشیدن و رها کردن HTML5کشیدن و رها کردن یکی از قابلیتهای بسیار رایج HTML5 است. این بدان معناست که وقتی یک شیء را "گرفتید" و به یک مکان دیگر میکشید. برای یادگیری بیشتر، به مطالب ما در مورد
توضیح:در آموزشهای HTML استفاده کنید. برای اینکه عنصری قابل کشیدن باشد، از تنظیم global.
خصوصیت draggable HTML5نکته:
به طور پیشفرض، لینکها و تصاویر قابل کشیدن هستند و نیازی به خاصیت draggable نیست.
در مراحل مختلف عملیات کشیدن و رها کردن، بسیاری از رویدادها استفاده میشوند و ممکن است رخ دهند:
- رویدادهایی که روی عنصر قابل کشیدن (عنصر منبع) رخ میدهند: ondragstart
- - وقتی کاربر عملیات کشیدن عنصر را شروع میکند، رخ میدهد ondrag
- ondragend - وقتی عنصر کشیده میشود، رخ میدهد
- وقتی کاربر عملیات کشیدن عنصر به پایان میرسد، رخ میدهد
- وقتی عنصر کشیده شده روی هدف قرار میگیرد، رخ میدهد
مثال:
وقتی که کاربر به پایان عملیات کشیدن عنصر <p> میرسد، جاوااسکریپت اجرا میشود:
<p draggable="true" ondragend="myFunction(event)">Drag me!</p>
صفحه پایین وبسایت نمونههای بیشتری از TIY دارد.
منطق:
در HTML:< elementmyScriptondragend="
">
در جاوااسکریپت، از روش addEventListener() استفاده میکنید:در جاوااسکریپت:myScript.ondragend = function(){
};
در جاوااسکریپت، از روش addEventListener() استفاده میکنید:.addEventListener("dragend", myScript);
توضیح:اینترنت اکسپلورر 8 یا نسخههای پیشین از آن پشتیبانی نمیکند مетод addEventListener().
جزئیات فنی
بومزدایی: | پشتیبانی میشود |
---|---|
قابل لغو: | پشتیبانی نمیشود |
نوع رویداد: | DragEvent |
برچسبهای HTML پشتیبانی شده: | تمام عناصر HTML |
نسخه DOM: | رویدادهای سطح 3 |
پشتیبانی مرورگر
اعداد در جدول نشاندهنده نسخه اولین مرورگر هستند که از این رویداد پشتیبانی میکند.
رویداد | کروم | IE | افراط | سافاری | آپرا |
---|---|---|---|---|---|
ondragend | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
مثالهای بیشتر
آموزش تمامی رویدادهای ممکن کشیدن و رها کردن:
<p draggable="true" id="dragtarget">بکش من!</p> <div class="droptarget">اینجا بندازید!</div> <script> /* ----------------- رویدادهایی که در هدف کشیدن فعال میشوند ----------------- */ document.addEventListener("dragstart", function(event) { // روش setData() در dataTransfer داده نوع و مقدار دادهای که کشیده میشود را تنظیم میکند event.dataTransfer.setData("Text", event.target.id); // هنگام شروع کشیدن عنصر p، یک متن اضافه کنید document.getElementById("demo").innerHTML = "شروع به کشیدن عنصر p کردهام."; // شفافیت عنصر قابل کشیدن را تغییر دهید event.target.style.opacity = "0.4"; }); // در حال کشیدن عنصر p، رنگ متن را تغییر دهید document.addEventListener("drag", function(event) { document.getElementById("demo").style.color = "red"; }); // پس از تکمیل کشیدن عنصر p، یک متن اضافه کرده و شفافیت را تنظیم کنید document.addEventListener("dragend", function(event) { document.getElementById("demo").innerHTML = "+بازیابی کردن متن درون HTML+"; event.target.style.opacity = "1"; }); /* ----------------- رویدادهایی که در هدف قرار دادن فعال میشوند ----------------- */ // هنگامی که عنصر قابل حرکت p به droptarget وارد میشود، سبک لبههای DIV را تغییر دهید document.addEventListener("dragenter", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = "3px dotted red"; } }); // به طور پیشفرض، نمیتوان دادهها/عناصر را در عناصر دیگر قرار داد. برای اجازه دادن به قرار دادن، باید پردازش پیشفرض عناصر را جلوگیری کنیم document.addEventListener("dragover", function(event) { event.preventDefault(); }); // هنگامی که عنصر قابل حرکت p از droptarget خارج میشود، سبک لبههای DIV را تنظیم کنید document.addEventListener("dragleave", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = ""; } }); /* در رها کردن - جلوگیری از پردازش پیشفرض مرورگر برای دادهها (در حالت پیشفرض به عنوان لینک باز میشود) */ رنگ متن خروجی و رنگ لبههای DIV را تنظیم کنید از روش dataTransfer.getData() برای دریافت دادههای قابل حرکت استفاده کنید دادههای قابل حرکت شناسه عنصر قابل حرکت است ("drag1") این عنصر قابل حرکت به عنصر قرار داده شده متصل میشود */ 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>