htmlcssjavascriptdragdropdaftarMenengah10 mnt baca
Daftar Sortable dengan Drag & Drop
Membangun daftar yang urutannya bisa diubah dengan menyeret item.
Kenapa Sortable List?
Playlist Spotify, antrean tugas, dan urutan foto bisa disusun ulang dengan seret. Ini versi sederhana dari kanban: drag and drop dalam satu kolom untuk mengubah urutan.
Langkah Membangun
HTML: <ul id="daftar"> berisi item-item dengan gagang seret (⋮⋮).
CSS: Item yang diseret transparan. Garis indikator muncul di posisi drop (atas/bawah item target).
JS: Berbeda dengan kanban yang memindahkan antar kolom, di sini kita perlu tahu posisi drop yang tepat:
dragstart: simpan elemen yang diseret.dragoverpada tiap item: hitung apakah mouse di separuh atas atau bawah item (viae.clientYdangetBoundingClientRect()).- Tampilkan indikator garis di posisi yang tepat.
drop: sisipkan elemen sebelum/sesudah item target denganinsertBefore.- Simpan urutan baru ke array + localStorage.
insertBefore(elBaru, elAcuan) menyisipkan sebelum acuan; untuk "setelah", pakai acuan.nextSibling.
Kesalahan Umum
- Indikator posisi tidak jelas sehingga pengguna tidak tahu item akan jatuh di mana.
- Urutan data tidak ikut berubah (hanya DOM) sehingga refresh mengembalikan urutan lama.
- Di HP drag and drop HTML5 tidak jalan (butuh Touch Events atau library; sebutkan batasan ini).
Live Playground
export default function App(): JSX.Element { return <h1>Hello world</h1> }
Edit kode di kiri, preview kanan ter-update otomatis.
Tantangan
Tantangan: Tambah & Hapus Lagu
Tambahkan form input untuk menambah lagu baru dan tombol hapus di tiap item. Pastikan urutan tetap tersimpan setelah diubah.