ondragstart ایوینٹ
تعریف و استفاده
رویداد ondragstart وقتی که کاربر شروع به کشیدن عنصر یا انتخاب متن میکند، رخ میدهد.
کشیدن و رها کردن یکی از ویژگیهای بسیار رایج HTML5 است. یعنی وقتی که یک شیء را "گرفتید" و آن را به مکان دیگری میکشید. برای یادگیری بیشتر، لطفاً مطالب ما را درباره HTML5 ڈرگ اینڈ ڈرپآموزش HTML کلی استفاده کنید.
توضیح:برای اینکه عنصر قابل کشیدن باشد، از ویژگی draggable HTML5\u3002
توضیح:به طور پیشفرض، لینکها و تصاویر قابل کشیدن هستند و نیازی به ویژگی draggable نیست.
در مراحل مختلف عمل کشیدن و رها کردن، بسیاری از رویدادها استفاده میشوند و ممکن است رخ دهند:
رویدادهایی که روی عنصر قابل کشیدن (عنصر منبع) قرار میگیرند:
- ondragstart - وقتی که کاربر شروع به کشیدن عنصر میکند، رخ میدهد
- ondrag - وقتی که عنصر کشیده میشود، رخ میدهد
- ondragend - وقتی که کاربر عمل کشیدن عنصر را تمام میکند، رخ میدهد
رویدادهایی که روی هدف قرار میگیرند:
- ondragenter - وقتی که عنصر کشیده شده به داخل هدف وارد میشود، رخ میدهد
- ondragover - وقتی که عنصر کشیده شده روی هدف قرار دارد، رخ میدهد
- ondragleave - وقتی که عنصر کشیده شده از هدف خارج میشود، رخ میدهد
- ondrop - وقتی که عنصر کشیده شده روی هدف قرار میگیرد، رخ میدهد
مثالها
وقتی که کاربر شروع به کشیدن عنصر <p> میکند، JavaScript اجرا میشود:
<p draggable="true" ondragstart="myFunction(event)">Drag me!</p>
در پایین صفحه، مثالهای بیشتری از TIY وجود دارد.
نحوهی نوشتن
در HTML:
<عنصر ondragstart="myScript">
در JavaScript:
آبجکت.ondragstart = function(){myScript};
در JavaScript، از روش addEventListener() استفاده میکنید:
آبجکت.addEventListener("dragstart", myScript);
توضیح:Internet Explorer 8 یا قدیمی تر نسخهها پشتیبانی نمیکنند addEventListener() \u65b9\u6cd5\u3002
\u6280\u672f\u8be6\u7ec6
\u6d6e\u6298 | \u652f\u6301 |
---|---|
\u53ef\u53d6\u6d88 | \u652f\u6301 |
\u4e8b\u4ef6\u7c7b\u578b\uff1a | DragEvent |
\u652f\u6301\u7684 HTML \u6807\u7b7e\u5217\u8868\uff1a | \u6240\u6709\u5e38\u89c4\u7684 HTML \u5143\u7d20 |
DOM \u7248\u672c\uff1a | Level 3 Events |
\u6d4f\u8bfb\u5668\u652f\u6301
\u8868\u4e2d\u7684\u6570\u5b57\u660e\u660e\u4e86\u5171\u6709\u652f\u6301\u8be5\u4e8b\u4ef6\u7684\u9884\u65ad\u6b21\u6d4f\u8bfb\u5668\u7248\u672c。
\u4e8b\u4ef6 | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
ondragstart | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
更多\u5b9e\u4f8b
\u5bf9\u6240\u6709\u53ef\u80fd\u7684\u622a\u62df\u4e8b\u4ef6\u7684\u6f14\u793a:
<p draggable="true" id="dragtarget">\u622a\u6211\u3002!</p> <div class="droptarget">\u6b63\u5907\u622a\u52a8\u3002!</div> <script> /* ----------------- \u5728\u622a\u52a8\u76ee\u6807\u4e0a\u89e6\u53d1\u7684\u4e8b\u4ef6 ----------------- */ document.addEventListener("dragstart", function(event) { // dataTransfer.setData()\u65b9\u6cd5\u8bbe\u7f6e\u88ab\u622a\u52a8\u6570\u636e\u7684\u6570\u636e\u7c7b\u578b\u548c\u503c event.dataTransfer.setData("Text", event.target.id); // \u5f00\u59cb\u622a\u52a8\u5b57\u7b26\u4ee3\u5e93\u65f6\u8f93\u51fa\u4e00\u4e9b\u6587\u672c document.getElementById("demo").innerHTML = "/\u5f00\u59cb\u622a\u52a8\u5b57\u7b26\u4ee3\u5e93\u3002"; // \u4fee\u6539\u53ef\u622a\u52a8\u5143\u7d20\u7684\u4e0d\u901a\u6982\u5ea6 event.target.style.opacity = "0.4"; }); // \u622a\u52a8\u5b57\u7b26\u4ee3\u5e93\u65f6\u4fee\u6539\u8f93\u51fa\u6587\u672c\u7684\u989c\u8272 document.addEventListener("drag", function(event) { document.getElementById("demo").style.color = "red"; }); // \u5b8c\u6210\u622a\u52a8\u5b57\u7b26\u4ee3\u5e93\u540e\u8f93\u51fa\u4e00\u4e9b\u6587\u672c\u5e76\u91cd\u7f6e\u4e0d\u901a\u6982\u5ea6 document.addEventListener("dragend", function(event) { document.getElementById("demo").innerHTML = "/\u6b63\u5907\u622a\u52a8\u4e86\u5b57\u7b26\u4ee3\u5e93\u3002"; event.target.style.opacity = "1"; }); /* ----------------- ਪਾਠ ਟੀਚੇ 'ਤੇ ਟ੍ਰਿਗਰ ਹੋਣ ਵਾਲੇ ਈਵੈਂਟ ----------------- */ // ਜਦੋਂ ਟ੍ਰੈਕਬਲ ਪੰਨੇ 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(); }); // ਜਦੋਂ ਟ੍ਰੈਕਬਲ ਪੰਨੇ droptarget ਤੋਂ ਬਾਹਰ ਜਾਂਦਾ ਹੈ, DIV ਦੀ ਬਾਰੀਕੀ ਸਟਾਈਲ ਮੁੜ ਸੈਟ ਕਰੋ document.addEventListener("dragleave", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = ""; } }); /* ਪਾਠ ਉੱਤੇ ਪਿੱਛੇ - ਬਰਾਉਜ਼ਰ ਨੂੰ ਡਾਟਾ ਦੀ ਮੂਲ ਪ੍ਰਕਿਰਿਆ ਤੋਂ ਰੋਕੋ (ਮੂਲ ਪਾਠ ਨੂੰ ਲਿੰਕ ਵਜੋਂ ਖੋਲ੍ਹੋ) */ ਆਉਟਪੁੱਟ ਟੈਕਸਟ ਦੀ ਰੰਗ ਅਤੇ DIV ਦੀ ਬਾਰੀਕੀ ਰੰਗ ਮੁੜ ਸੈਟ ਕਰੋ dataTransfer.getData() ਮੱਥਕ ਦੀ ਮੰਗ ਨਾਲ ਖਿੜ੍ਹਾ ਵਾਲੇ ਤੱਤ ਦਾ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰੋ ਖਿੜ੍ਹਾ ਵਾਲੇ ਤੱਤ ਦਾ ਡਾਟਾ ਉਸ ਦਾ id ਹੈ ("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>