Selain properti yang tercantum di bawah, properti dari antarmuka induk, Show
DragEvent.dataTransfer Baca sajaData yang ditransfer selama interaksi seret dan lepas Dalam contoh ini, kami memiliki elemen yang dapat diseret di dalam wadah. Coba ambil elemen, seret, lalu lepaskan HTML5 Drag and Drop API berarti kita dapat membuat hampir semua elemen di halaman kita dapat diseret. Dalam posting ini kami akan menjelaskan dasar-dasar drag and drop Membuat konten yang dapat diseretPerlu dicatat bahwa di sebagian besar browser, pemilihan teks, gambar, dan tautan dapat diseret secara default. Misalnya, jika Anda menyeret tautan di halaman web, Anda akan melihat kotak kecil berisi judul dan URL. Anda dapat meletakkan kotak ini di bilah alamat atau desktop untuk membuat pintasan atau menavigasi ke tautan. Untuk membuat jenis konten lain dapat diseret, Anda perlu menggunakan HTML5 Drag and Drop API Untuk membuat objek yang dapat diseret, atur 0 pada elemen itu. Hampir semua hal dapat diaktifkan dengan drag. gambar, file, tautan, file, atau markup apa pun di halaman AndaContoh kami membuat antarmuka untuk mengatur ulang kolom yang telah ditata dengan CSS Grid. Markup dasar untuk kolom terlihat seperti ini, dengan setiap kolom memiliki atribut 1 yang disetel ke 2
Inilah CSS untuk elemen wadah dan kotak. Perhatikan bahwa satu-satunya CSS yang terkait dengan fungsionalitas seret dan lepas adalah properti 3. Kode lainnya hanya mengontrol tata letak dan gaya elemen penampung dan kotak
Pada titik ini Anda akan menemukan bahwa Anda dapat menyeret item, namun tidak ada lagi yang akan terjadi. Untuk menambahkan fungsionalitas seret dan lepas, kita perlu menggunakan JavaScript API Mendengarkan peristiwa menyeretAda sejumlah acara berbeda untuk dilampirkan untuk memantau seluruh proses seret dan lepas
Untuk menangani aliran seret dan lepas, Anda memerlukan semacam elemen sumber (tempat asal seret), muatan data (apa yang ingin Anda lepas), dan target (area untuk menangkap jatuhan). Elemen sumber dapat berupa gambar, daftar, tautan, objek file, blok HTML, dll. Targetnya adalah zona jatuhkan (atau kumpulan zona jatuhkan) yang menerima data yang coba dibuang oleh pengguna. Perlu diingat bahwa tidak semua elemen bisa menjadi target, misalnya gambar tidak bisa menjadi target Memulai dan mengakhiri urutan seret dan lepasSetelah Anda memiliki 1 atribut yang ditentukan pada konten Anda, lampirkan event handler 4 untuk memulai urutan seret dan lepas untuk setiap kolomKode ini akan menyetel opasitas kolom menjadi 40% saat pengguna mulai menyeretnya, lalu mengembalikannya ke 100% saat acara seret berakhir
Hasilnya bisa dilihat pada demo Glitch di bawah ini. Seret item dan itu menjadi buram. Karena target peristiwa _4 adalah elemen sumber, pengaturan 4 menjadi 40% memberikan umpan balik visual kepada pengguna bahwa elemen tersebut adalah pilihan saat ini yang sedang dipindahkan. Setelah Anda menjatuhkan item, meskipun fungsionalitas drop tidak ada, elemen sumber kembali ke opacity 100%Tambahkan isyarat visual tambahan dengan .container { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px;}.box { border: 3px solid #666; background-color: #ddd; border-radius: .5em; padding: 10px; cursor: move;}_6, .container { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px;}.box { border: 3px solid #666; background-color: #ddd; border-radius: .5em; padding: 10px; cursor: move;}8, dan .container { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px;}.box { border: 3px solid #666; background-color: #ddd; border-radius: .5em; padding: 10px; cursor: move;}7Untuk membantu pengguna memahami cara berinteraksi dengan antarmuka Anda, gunakan event handler 6, 8 dan 7. Dalam contoh ini, kolom adalah target lepas selain dapat diseret. Bantu pengguna untuk memahami hal ini dengan membuat batas putus-putus saat mereka menahan item yang diseret di atas kolom. Misalnya, di CSS Anda, Anda dapat membuat kelas 1 untuk mewakili elemen yang merupakan target pelepasan
Kemudian, di JavaScript Anda atur event handler, tambahkan kelas 1 saat kolom diseret, dan hapus saat kita pergi. Di handler _0 kami juga memastikan untuk menghapus kelas di akhir drag
Ada beberapa poin yang perlu dibahas dalam kode ini
Menyelesaikan penurunanUntuk memproses penurunan yang sebenarnya, tambahkan pendengar acara untuk acara 9. Dalam penangan _9, Anda harus mencegah perilaku default browser untuk penurunan, yang biasanya merupakan semacam pengalihan yang mengganggu. Anda dapat mencegah peristiwa menggelembungkan DOM dengan memanggil 9
Pastikan untuk mendaftarkan penangan baru di antara penangan lainnya
Jika Anda menjalankan kode saat ini, item tidak akan jatuh ke lokasi baru. Untuk mencapai ini, Anda perlu menggunakan objek 0Properti _1 adalah tempat semua keajaiban seret dan lepas terjadi. Itu menyimpan potongan data yang dikirim dalam aksi seret. 1 diatur dalam peristiwa 4 dan dibaca/ditangani dalam peristiwa jatuhkan. Memanggil 4 memungkinkan Anda menyetel muatan data dan jenis MIME objekDalam contoh ini, kami akan mengizinkan pengguna untuk mengatur ulang urutan kolom. Untuk melakukan itu, pertama-tama Anda harus menyimpan HTML elemen sumber saat drag dimulai
Dalam acara _9 Anda memproses penurunan kolom, mengatur HTML kolom sumber ke HTML dari kolom target yang Anda jatuhkan, terlebih dahulu memeriksa bahwa pengguna tidak kembali ke kolom yang sama dengan yang mereka seret
Anda bisa melihat hasilnya pada demo berikut. Agar ini berfungsi, Anda memerlukan browser desktop. Drag and Drop API tidak didukung di perangkat seluler. Seret dan lepaskan kolom A di atas kolom B dan perhatikan bagaimana mereka berpindah tempat Lebih banyak sifat menyeretObjek _1 memperlihatkan properti untuk memberikan umpan balik visual kepada pengguna selama proses seret. Properti ini juga dapat digunakan untuk mengontrol bagaimana setiap target jatuh merespons tipe data tertentu
Unggah file dengan drag and dropContoh sederhana ini menggunakan kolom sebagai sumber seret dan target seret. Ini mungkin terlihat di UI tempat pengguna diminta untuk mengatur ulang item. Dalam beberapa situasi, target dan sumber seret mungkin berbeda, seperti antarmuka di mana pengguna harus memilih satu gambar untuk menjadi gambar utama produk dengan menyeret gambar yang dipilih ke target Seret dan Jatuhkan sering digunakan untuk memungkinkan pengguna menyeret item dari desktop mereka ke dalam aplikasi. Perbedaan utama ada pada penangan _9 Anda. Alih-alih menggunakan _9 untuk mengakses file, data mereka akan dimuat dalam properti 0
Bagaimana cara memindahkan div dalam JavaScript?Kode JavaScript
. Kami juga akan menggunakan properti CSS "atas" dan "kiri" untuk memindahkan div kami. use the setInterval function to move our div every 1000 milliseconds (1 second). We will also use the CSS properties "top" and "left" to move our div around.
Bagaimana cara menyeret elemen dalam JavaScript?Pengantar API Seret dan Lepas JavaScript
. Untuk menarik gambar, cukup tahan tombol mouse ke bawah lalu gerakkan . Untuk menyeret teks, Anda perlu menyorot beberapa teks dan menyeretnya dengan cara yang sama seperti Anda menyeret gambar.
Bisakah div dapat diseret?Karena penting untuk mengetahui koordinat awal dan akhir mouse, tidak mungkin tanpa garis Javascript. Anda harus menerima JS atau berhenti mencari solusi. Omong-omong, Anda bisa membuat div "dapat diseret" tanpa JS, tetapi Anda tidak bisa "menyeretnya" .
Bagaimana cara membuat pop up dapat diseret?Kontrol Popup memiliki properti isDraggable. Setel ke true agar Popup dapat diseret . |