Seret dan lepas HTML5
Seret dan lepas adalah sebahagian daripada standard HTML5.
Seret ikon tapak web Cina php ke dalam kotak segi empat tepat.
Seret dan Lepaskan
Seret dan lepas ialah ciri biasa di mana anda mengambil objek dan menyeretnya ke lokasi lain kemudian.
Dalam HTML5, seret dan lepas adalah sebahagian daripada standard dan mana-mana elemen boleh diseret dan digugurkan.
Sokongan Penyemak Imbas
Seretan sokongan Internet Explorer 9+, Firefox, Opera, Chrome dan Safari.
Nota: Safari 5.1.2 tidak menyokong penyeretan.
Contoh seret dan lepas HTML5
Contoh berikut ialah seretan mudah Contoh tempat:
Instance
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <style type="text/css"> #div1 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;} </style> <script> function allowDrop(ev) { ev.preventDefault(); } function drag(ev) { ev.dataTransfer.setData("Text",ev.target.id); } function drop(ev) { ev.preventDefault(); var data=ev.dataTransfer.getData("Text"); ev.target.appendChild(document.getElementById(data)); } </script> </head> <body> <p>拖动 php中文网 图片到矩形框中:</p> <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div> <br> <img id="drag1" src="https://img.php.cn/upload/course/000/000/010/58043146a1da1979.jpg" draggable="true" ondragstart="drag(event)" width="336" height="69"> </body> </html>
Jalankan instance»
Klik butang "Run Instance" untuk melihat contoh dalam talian
Ia mungkin kelihatan agak rumit, tetapi kita boleh mengkaji bahagian berlainan acara seret dan lepas secara berasingan.
Tetapkan elemen sebagai boleh seret
Pertama, untuk menjadikan elemen boleh seret, tetapkan atribut boleh seret kepada benar:
Apa yang hendak diseret - ondragstart dan setData()
Kemudian, tetapkan bahawa apabila elemen itu diseret, apa yang berlaku.
Dalam contoh di atas, atribut ondragstart memanggil fungsi, drag(event), yang menentukan data untuk diseret.
kaedah dataTransfer.setData() menetapkan jenis data dan nilai data yang diseret:
{
ev.dataTransfer.setData("Teks",ev.target.id);
}
Dalam contoh ini, jenis data ialah "Teks" dan nilainya ialah id elemen boleh seret ("drag1").
Di mana hendak diletakkan - ondragover
Acara ondragover menentukan tempat untuk meletakkan data yang diseret.
Secara lalai, data/elemen tidak boleh diletakkan di dalam elemen lain. Jika kita perlu membenarkan peletakan, kita mesti menghalang pengendalian lalai bagi elemen tersebut.
Ini dilakukan dengan memanggil kaedah event.preventDefault() acara ondragover:
Tempat - ondrop
Apabila data yang diseret diletakkan, acara drop akan berlaku.
Dalam contoh di atas, atribut ondrop memanggil fungsi, drop(event):
function drop(ev) { ev.preventDefault(); var data=ev.dataTransfer.getData("Text"); ev.target.appendChild(document.getElementById(data)); }:
Panggil preventDefault() untuk mengelakkan pemprosesan lalai data penyemak imbas (tingkah laku lalai acara drop adalah untuk dibuka sebagai pautan)
Melalui Pemindahan data kaedah .getData ("Teks") untuk mendapatkan data yang diseret. Kaedah ini akan mengembalikan sebarang set data kepada jenis yang sama dalam kaedah setData().
Data yang diseret ialah id elemen yang diseret ("drag1")
Tambahkan elemen yang diseret pada elemen peletakan (elemen sasaran )
Lagi contoh
Seret dan lepaskan imej ke depan dan belakang
Cara untuk menyeret dan melepaskan imej antara dua <div> elemen.
Instance
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <style type="text/css"> #div1, #div2 {float:left; width:100px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;} </style> <script> function allowDrop(ev) { ev.preventDefault(); } function drag(ev) { ev.dataTransfer.setData("Text",ev.target.id); } function drop(ev) { ev.preventDefault(); var data=ev.dataTransfer.getData("Text"); ev.target.appendChild(document.getElementById(data)); } </script> </head> <body> <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"> <img src="https://img.php.cn/upload/course/000/000/010/58049330dcf69494.png" draggable="true" ondragstart="drag(event)" id="drag1" width="88" height="31"></div> <div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div> </body> </html>
Run Instance»
Klik butang "Run Instance" untuk melihat contoh dalam talian