


Bagaimanakah anda boleh menggunakan API Drag dan Drop untuk membolehkan fungsi drag-and-drop?
Mar 26, 2025 pm 09:04 PMArtikel ini membincangkan menggunakan API Drag dan Drop dalam HTML5 untuk aplikasi web, yang memperincikan cara membuat elemen draggable, mengendalikan seretan dan drop acara, dan menguruskan jenis data yang berbeza semasa operasi.
Bagaimanakah anda boleh menggunakan API Drag dan Drop untuk membolehkan fungsi drag-and-drop?
API Drag dan Drop dalam HTML5 menyediakan cara yang mudah untuk melaksanakan fungsi drag-and-drop dalam aplikasi web. Untuk membolehkan ciri ini, anda perlu mengikuti langkah -langkah ini:
- Buat elemen draggable : Tetapkan atribut
draggable
kepadatrue
pada elemen yang anda mahu buat draggable. Sebagai contoh,<div draggable="true">Drag me!</div>
. -
Tentukan acara seret pada elemen draggable : Anda perlu mengendalikan beberapa peristiwa pada elemen draggable:
-
dragstart
: Acara ini dipecat apabila pengguna mula menyeret elemen. Anda boleh menggunakannya untuk menetapkan data yang akan dipindahkan semasa operasi seretan menggunakanevent.dataTransfer.setData()
. Contohnya:<code class="javascript">element.addEventListener('dragstart', (e) => { e.dataTransfer.setData('text/plain', element.id); });</code>
-
drag
: Acara ini dipecat secara berterusan apabila pengguna menyeret elemen. Ia boleh digunakan untuk maklum balas visual, seperti mengubah rupa elemen yang diseret. -
dragend
: Acara ini dipecat apabila pengguna melepaskan elemen yang diseret. Ia boleh digunakan untuk membersihkan sebarang perubahan visual yang dibuat semasa operasi seretan.
-
-
Tentukan peristiwa drop pada sasaran drop : Anda juga perlu mengendalikan peristiwa pada elemen di mana anda ingin menjatuhkan item yang diseret:
-
dragenter
: Acara ini dipecat apabila elemen yang diseret memasuki sasaran drop. Anda boleh menggunakannya untuk memberikan maklum balas visual, seperti menonjolkan sasaran drop. -
dragover
: Acara ini dipecat secara berterusan kerana elemen yang diseret adalah lebih dari sasaran drop. Secara lalai, penyemak imbas menghalang penurunan, jadi anda perlu menghalang tindakan lalai untuk membenarkan penurunan:<code class="javascript">dropTarget.addEventListener('dragover', (e) => { e.preventDefault(); });</code>
-
dragleave
: Acara ini dipecat apabila elemen yang diseret meninggalkan sasaran drop. Anda boleh menggunakannya untuk mengembalikan sebarang perubahan visual yang dibuat apabila elemen yang diseret memasuki sasaran drop. -
drop
: Acara ini dipecat apabila pengguna menjatuhkan elemen yang diseret pada sasaran drop. Anda boleh menggunakannya untuk mengendalikan tindakan drop, seperti menggerakkan elemen yang diseret ke sasaran drop atau memproses data yang dipindahkan:<code class="javascript">dropTarget.addEventListener('drop', (e) => { e.preventDefault(); const data = e.dataTransfer.getData('text/plain'); // Handle the dropped data });</code>
-
Dengan mengikuti langkah-langkah ini dan mengendalikan peristiwa yang sesuai, anda boleh melaksanakan fungsi drag-and-drop menggunakan API Drag dan Drop.
Apakah peristiwa utama yang terlibat dalam melaksanakan drag-and-drop dengan API Drag dan Drop?
Peristiwa utama yang terlibat dalam melaksanakan fungsi drag-and-drop dengan API Drag dan Drop adalah:
- Dragstart : Dipecat apabila pengguna mula menyeret elemen. Acara ini digunakan untuk menetapkan data yang akan dipindahkan semasa operasi seretan.
- Seret : Dipecat secara berterusan apabila pengguna menyeret elemen. Acara ini boleh digunakan untuk memberikan maklum balas visual semasa operasi seretan.
- Dragend : Dipecat apabila pengguna melepaskan elemen yang diseret. Acara ini boleh digunakan untuk membersihkan sebarang perubahan visual yang dibuat semasa operasi seretan.
- Dragenter : Dipecat apabila elemen yang diseret memasuki sasaran drop yang sah. Acara ini boleh digunakan untuk memberikan maklum balas visual, seperti menonjolkan sasaran drop.
- Dragover : Dipecat secara berterusan kerana elemen yang diseret adalah sasaran drop yang sah. Secara lalai, penyemak imbas menghalang penurunan, jadi anda perlu menghalang tindakan lalai untuk membenarkan penurunan.
- Dragleave : Dipecat apabila elemen yang diseret meninggalkan sasaran drop yang sah. Acara ini boleh digunakan untuk mengembalikan sebarang perubahan visual yang dibuat apabila elemen yang diseret memasuki sasaran drop.
- Drop : Dipecat apabila pengguna menjatuhkan elemen yang diseret pada sasaran drop yang sah. Acara ini digunakan untuk mengendalikan tindakan drop, seperti menggerakkan elemen yang diseret ke sasaran drop atau memproses data yang dipindahkan.
Peristiwa-peristiwa ini adalah penting untuk melaksanakan fungsi drag-and-drop lengkap menggunakan API Drag dan Drop.
Bolehkah API Drag dan Drop digunakan untuk memindahkan data antara aplikasi atau tingkap yang berbeza?
API seret dan drop direka terutamanya untuk memindahkan data dalam satu aplikasi web tunggal. Walau bagaimanapun, ia boleh digunakan untuk memindahkan data antara aplikasi atau tingkap yang berbeza dalam keadaan tertentu:
- Dalam penyemak imbas yang sama : Anda boleh menggunakan API seret dan drop untuk memindahkan data antara tab atau tingkap yang berbeza dari penyemak imbas yang sama. Data dipindahkan menggunakan objek
dataTransfer
, dan aplikasi penerima boleh mengakses data menggunakan kaedahgetData
. - Antara aplikasi yang berbeza : API Drag dan Drop boleh digunakan untuk memindahkan data antara aplikasi yang berbeza jika aplikasi penerimaan menyokong format data yang sama. Sebagai contoh, anda boleh menyeret teks dari laman web ke aplikasi editor teks. Walau bagaimanapun, aplikasi penerimaan mesti dapat mengendalikan format data yang dinyatakan dalam kaedah
setData
. - Sekatan silang asal : Apabila memindahkan data antara asal-usul yang berbeza (domain), anda perlu menyedari sekatan silang asal. API seret dan drop mengikuti dasar asal yang sama, yang bermaksud bahawa data hanya boleh dipindahkan di antara halaman dengan asal yang sama melainkan halaman penerima secara eksplisit membolehkannya menggunakan pengepala
Access-Control-Allow-Origin
.
Ringkasnya, sementara API Drag dan Drop direka khas untuk digunakan dalam satu aplikasi web, ia boleh digunakan untuk memindahkan data antara aplikasi atau tingkap yang berbeza di bawah syarat-syarat tertentu, seperti apabila aplikasi penerima menyokong format data yang sama dan sekatan silang asal ditangani dengan sewajarnya.
Bagaimanakah anda mengendalikan pelbagai jenis data apabila menggunakan API Drag dan Drop untuk operasi drag-and-drop?
Mengendalikan pelbagai jenis data dengan API seret dan drop melibatkan menggunakan objek dataTransfer
untuk menetapkan dan mengambil data dalam pelbagai format. Berikut adalah cara anda dapat mengendalikan pelbagai jenis data:
-
Menetapkan data : Apabila memulakan operasi seret, anda boleh menetapkan pelbagai jenis data menggunakan kaedah
setData
objekdataTransfer
. Contohnya:<code class="javascript">element.addEventListener('dragstart', (e) => { e.dataTransfer.setData('text/plain', 'Hello, World!'); e.dataTransfer.setData('text/html', '<p>Hello, World!</p>'); e.dataTransfer.setData('application/json', JSON.stringify({ message: 'Hello, World!' })); });</code>
Dalam contoh ini, kami menetapkan tiga jenis data: Teks Plain, HTML, dan JSON.
-
Mengambil data : Apabila mengendalikan acara drop, anda boleh mengambil data dalam format yang dikehendaki menggunakan kaedah
getData
objekdataTransfer
. Contohnya:<code class="javascript">dropTarget.addEventListener('drop', (e) => { e.preventDefault(); const plainText = e.dataTransfer.getData('text/plain'); const html = e.dataTransfer.getData('text/html'); const json = e.dataTransfer.getData('application/json'); // Handle the retrieved data });</code>
Dalam contoh ini, kami mengambil data dalam tiga format yang berbeza: Teks Plain, HTML, dan JSON.
-
Mengendalikan pelbagai jenis data : Anda boleh menyemak ketersediaan jenis data yang berbeza menggunakan sifat
types
objekdataTransfer
. Contohnya:<code class="javascript">dropTarget.addEventListener('drop', (e) => { e.preventDefault(); const types = e.dataTransfer.types; if (types.includes('text/plain')) { const plainText = e.dataTransfer.getData('text/plain'); // Handle plain text data } if (types.includes('text/html')) { const html = e.dataTransfer.getData('text/html'); // Handle HTML data } if (types.includes('application/json')) { const json = e.dataTransfer.getData('application/json'); // Handle JSON data } });</code>
Dalam contoh ini, kami menyemak ketersediaan jenis data yang berbeza dan mengendalikan setiap jenis dengan sewajarnya.
Dengan menggunakan objek dataTransfer
dan kaedahnya, anda boleh mengendalikan pelbagai jenis data semasa operasi drag-and-drop dengan API Drag dan Drop.
Atas ialah kandungan terperinci Bagaimanakah anda boleh menggunakan API Drag dan Drop untuk membolehkan fungsi drag-and-drop?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kunci untuk bersaing dengan piawaian HTML dan amalan terbaik adalah dengan sengaja dan bukannya mengikutinya secara membuta tuli. Pertama, ikuti ringkasan atau kemas kini log sumber rasmi seperti WHATWG dan W3C, memahami tag baru (seperti) dan atribut, dan menggunakannya sebagai rujukan untuk menyelesaikan masalah yang sukar; Kedua, melanggan surat berita pembangunan web yang dipercayai dan blog, menghabiskan 10-15 minit seminggu untuk melayari kemas kini, memberi tumpuan kepada kes penggunaan sebenar dan bukan hanya mengumpul artikel; Kedua, gunakan alat pemaju dan linter seperti htmlhint untuk mengoptimumkan struktur kod melalui maklum balas segera; Akhirnya, berinteraksi dengan komuniti pemaju, berkongsi pengalaman dan mempelajari kemahiran praktikal orang lain, untuk terus meningkatkan kemahiran HTML.

Alasan untuk menggunakan tag adalah untuk memperbaiki struktur semantik dan kebolehcapaian laman web, memudahkan pembaca skrin dan enjin carian untuk memahami kandungan halaman, dan membolehkan pengguna dengan cepat melompat ke kandungan teras. Berikut adalah perkara utama: 1. Setiap halaman harus mengandungi hanya satu elemen; 2. Ia tidak boleh memasukkan kandungan yang diulangi di seluruh halaman (seperti sidebars atau footers); 3. Ia boleh digunakan bersempena dengan sifat Aria untuk meningkatkan kebolehcapaian. Biasanya terletak selepas dan sebelum ini, ia digunakan untuk membungkus kandungan halaman yang unik, seperti artikel, bentuk atau butiran produk, dan harus dielakkan, atau masuk; Untuk meningkatkan kebolehcapaian, ARIA-Labeledby atau Aria-label boleh digunakan untuk mengenal pasti bahagian-bahagian dengan jelas.

Untuk membuat dokumen HTML asas, anda perlu memahami struktur asasnya dan menulis kod dalam format standard. 1. Gunakan jenis dokumen pengisytiharan pada mulanya; 2. Gunakan tag untuk membungkus keseluruhan kandungan; 3. Termasuk dan dua bahagian utama di dalamnya, yang digunakan untuk menyimpan metadata seperti tajuk, pautan lembaran gaya, dan lain-lain, dan termasuk kandungan pengguna yang kelihatan seperti tajuk, perenggan, gambar dan pautan; 4. Simpan fail dalam format .html dan buka kesan tontonan dalam penyemak imbas; 5. Kemudian anda secara beransur -ansur boleh menambah lebih banyak elemen untuk memperkayakan kandungan halaman. Ikuti langkah -langkah ini untuk membina laman web asas dengan cepat.

Untuk mengurangkan saiz fail HTML, anda perlu membersihkan kod berlebihan, memampatkan kandungan, dan mengoptimumkan struktur. 1. Padam tag yang tidak digunakan, komen dan kosong tambahan untuk mengurangkan jumlah; 2. Pindahkan CSS dan JavaScript dalam fail luaran dan menggabungkan pelbagai skrip atau blok gaya; 3. Memudahkan sintaks label tanpa menjejaskan parsing, seperti menghilangkan tag tertutup pilihan atau menggunakan atribut pendek; 4. Selepas pembersihan, aktifkan teknologi pemampatan sisi pelayan seperti GZIP atau Brotli untuk mengurangkan jumlah penghantaran. Langkah -langkah ini dapat meningkatkan prestasi pemuatan halaman tanpa mengorbankan fungsi.

Untuk membuat kotak semak HTML, gunakan atribut Jenis untuk menetapkan elemen kotak semak. 1. Struktur asas termasuk tag ID, nama dan label untuk memastikan bahawa teks mengklik boleh menukar pilihan; 2. Kotak semak yang berkaitan dengan pelbagai hendaklah menggunakan nama yang sama tetapi nilai yang berbeza, dan bungkusnya dengan Fieldset untuk meningkatkan kebolehcapaian; 3. Sembunyikan kawalan asli apabila menyesuaikan gaya dan gunakan CSS untuk mereka bentuk elemen alternatif sambil mengekalkan fungsi lengkap; 4. Pastikan ketersediaan, label pasangan, sokongan navigasi papan kekunci, dan elakkan bergantung pada hanya arahan visual. Langkah -langkah di atas dapat membantu pemaju dengan betul melaksanakan komponen kotak semak yang mempunyai fungsi dan estetika.

HtmlHasevolvElvEltanthantlantlantlantlylantelscreationTomeetTheGrowingDemandsofwebdeveloPerersandUsers

Ia adalah tag semantik yang digunakan dalam HTML5 untuk menentukan bahagian bawah halaman atau blok kandungan, biasanya termasuk maklumat hak cipta, maklumat hubungan atau pautan navigasi; Ia boleh diletakkan di bahagian bawah halaman atau bersarang, dan sebagainya. Tag sebagai akhir blok; Apabila menggunakannya, anda harus memberi perhatian untuk mengelakkan penyalahgunaan berulang dan kandungan yang tidak relevan.

ThetabindexattributecontrolshowelementsReceiveFocusViathetabkey, withthreemainvalues: tabindex = "0" addsanelementTothenaturalalTaborder, Tabindex = "-1" membolehkan programmaticfocusonly)
