Install Web App

Cara Membuat Drag & Drop Dengan JS

profil-penulis

Eca Elysia Renata

09 Februari 2024

Drag & Drop

Drag & Drop dalam JavaScript adalah interaksi pengguna yang memungkinkan elemen di halaman web untuk digerakkan dan diletakkan di tempat lain. Ini adalah bagian dari spesifikasi HTML5 dan didukung oleh sebagian besar peramban web modern.

HTML CODE

<div class="empty">
    <div class="fill" draggable="true"></div>
</div>
<div class="empty"></div>
<div class="empty"></div>
<div class="empty"></div>
<div class="empty"></div>

CSS CODE

  • Kode di atas ini mendefinisikan dua class CSS, yaitu .fill dan .hold.
  • class .fill mengatur gambar latar belakang, posisi, tinggi, lebar, dan lainnya untuk elemen dengan class ini.
  • class .hold mengatur border elemen dengan class ini.
.fill {
    background-image: url('image.png');
    position: relative;
    height: 150px;
    width: 150px;
    top: 5px;
    left: 5px;
    cursor: pointer;
}

.hold {
    border: solid 5px #5CD2E6;
}

.invisible {
    display: none;
}

  • class .empty mengatur elemen untuk ditampilkan sebagai inline-block, dengan tinggi dan lebar 160px, margin 10px, border solid 3px berwarna #5CD2E6, dan latar belakang putih.
  • class .hovered mengubah latar belakang elemen menjadi warna #5CD2E6 dan gaya border menjadi dashed.
.empty {
    display: inline-block;
    height: 160px;
    width: 160px;
    margin: 10px;
    border: solid 3px #5CD2E6;
    background: white;
}

.hovered {
    background: #5CD2E6;
    border-style: dashed;
}

JavaScript CODE

const fill = document.querySelector(".fill");
const empties = document.querySelectorAll(".empty");

// Cek jika elemen ada
if (fill && empties.length > 0) {
  // Isi listeners
  fill.addEventListener("dragstart", dragStart);
  fill.addEventListener("dragend", dragEnd);

  // Ulangi melalui kotak kosong dan tambahkan pendengar listeners
  for (const empty of empties) {
    empty.addEventListener("dragover", dragOver);
    empty.addEventListener("dragenter", dragEnter);
    empty.addEventListener("dragleave", dragLeave);
    empty.addEventListener("drop", dragDrop);
  }
}

  • dragStart: Fungsi ini dipanggil saat pengguna mulai menyeret elemen. Elemen tersebut mendapatkan class ‘hold’ dan menjadi ‘invisible’ setelah waktu tertentu.
  • dragEnd: Fungsi ini dipanggil saat pengguna selesai menyeret elemen. Elemen tersebut mendapatkan class ‘fill’.
  • dragOver dan dragEnter: Fungsi-fungsi ini dipanggil saat elemen yang diseret berada di atas elemen lain. Mereka mencegah perilaku default dan menambahkan class ‘hovered’ ke elemen target.
  • dragLeave dan drop: Fungsi-fungsi ini dipanggil saat elemen yang diseret meninggalkan elemen lain atau dijatuhkan. Mereka menghapus kelas ‘hovered’ dan menambahkan elemen yang diseret ke elemen target.
// Tarik Functions
function dragStart() {
  this.className += " hold";
  setTimeout(() => (this.className = "invisible"), 0);
}

function dragEnd() {
  this.className = "fill";
}

function dragOver(e) {
  e.preventDefault();
}

function dragEnter(e) {
  e.preventDefault();
  this.className += " hovered";
}

function dragLeave() {
  this.className = "empty";
}

function dragDrop() {
  this.className = "empty";
  this.append(fill);
}

 

Artikel Lainnya Dengan Kategori Terkait :


1. 4 Ways to Make an API Call

2. 5 Tips Menarik Javascript

3. 6 Cara Melakukan Loop Pada Array di JavaScript

4. Array Pada JavaScript

5. Belajar Javascript #01 Belajar Menyisipkan Javascript Pada HTML menggunakan Metode Internal

6. Belajar Javascript #02 Belajar Menyisipkan Javascript Pada HTML Menggunakan Metode External

7. Belajar Javascript #03 Mendeklarasikan Variabel

8. Belajar Javascript #05 Menampilkan data di console

9. Belajar Javascript #06 Operator Aritmatika

10. Belajar Javascript #07 Assignment Operator

11. Belajar Javascript #08 String Operator

12. Belajar Javascript #09 Operator Perbandingan

13. Belajar Javascript #10 Operator Logika AND, OR, NOT, pada JavaScript

14. Belajar Javascript #11 Belajar Fungsi Pada Javascript

15. Belajar Javascript #12 Cara Mendeklarasikan Fungsi Pada Javascript

16. Belajar Javascript #13 Belajar Parameter & Argument Pada Javascript

17. Belajar Javascript #14 Belajar apa itu Function Hoisting pada javascript, dan contohnya

18. Belajar Javascript #15 Lingkup Global vs Lingkup Lokal

19. Belajar Javascript #16 Mengenal Objek Javascript

20. Belajar Javascript #17 Menggunakan Object Literal

21. Belajar Javascript #18 Mengakses properti Objek

22. Belajar Javascript #19 Menambah Properti Baru pada Objek

23. Belajar Javascript #20 Menghapus Properti Objek

24. Belajar Javascript #21 Object Method

25. Belajar Javascript #22 Mengenal Array

26. Belajar Javascript #23 Mendeklarasikan Array

27. Belajar Javascript #24 Nomor Index dan Jumlah Data Array

28. Belajar Javascript #25 Mengakses Data/Element di Dalam Array

29. Belajar Javascript #26 Mengubah Data/Element pada Array

30. Belajar Javascript #27 Array Method

31. Belajar Javascript #28 Mengenal Obejek Math

32. Belajar Javascript #29 Properti Objek Math

33. Belajar Javascript #30 Method Objek Math

34. Belajar Javascript #31 Apa Itu Condinational Dalam Javascript

35. Belajar Javascript #32 Menggunakan if, else if, dan else

36. Belajar Javascript #33 Menggunakan Switch Case

37. Belajar Javascript #34 Apa itu loop?

38. Belajar Javascript #35 Apa itu for loop?

39. Belajar Javascript #36 For/in Loop

40. Belajar Javascript #37 For/of Loop

41. Belajar Javascript #38 While Loop

42. Belajar Javascript #39 Do while loop

43. Belajar Javascript #40 Pengenalan JavaScript HTML DOM

44. Belajar Javascript #41 Mengakses Element HTML

45. Belajar Javascript #42 DOM Event

46. Belajar Javascript #43 Mengubah Element HTML

47. Belajar Javascript #44 ECMAScript

48. Belajar Javascript #45 let vs const vs var

49. Belajar Javascript #46 Template Literal

50. Belajar Javascript #47 Arrow Function

51. Belajar Javascript #48 Default Parameter

52. Belajar Javascript #49 Rest Parameter & Spread Operator

53. Belajar Javascript #50 Destrukturisasi

54. Belajar Javascript #51 Object Shorthand

55. Cara Install NodeJS dan Pengertian !

56. Cara Kerja Objek Dalam JavaScript

57. Cara Membuat Drag & Drop Dengan JS

58. Cara Menggunakan JavaScript Dengan Singkat

59. Fitur JavaScript Modern

60. Function JavaScript Yang Harus Kalian Tahu

61. Getters & Setters Di JavaScript

62. HOW TO STYLE IN JAVASCRIPT

63. Implementasi Barcode menggunakan JsBarcode Pada JavaScript

64. Implementasi Kegunaan Accordion JavaScript: Meningkatkan Interaktivitas dan Pengalaman Pengguna pada Website

65. Implementasi Password Generator Dalam JavaScript

66. Implementasi Penggunaan UseRef Pada React JS

67. Implementasi permintaan GET menggunakan XMLHttpRequest

68. JavaScript Array flatMap

69. JavaScript Function Apply()

70. JavaScript Notification API

71. JavaScript Template LIterals

72. JavaScript Use Strict

73. Kinerja Supercharge Dengan Pekerja Web Menggunakan JavaScript

74. Kode Kilat JavaScript: Solusi Cepat dalam Satu Baris!

75. Kombinasi Scroll Magic dan Intersection Observer

76. Memahami dan Menerapkan Metode filter() dalam JavaScript

77. Memahami function bind pada JavaScript

78. Memahami function call () pada JavaScript

79. Memahami Konsep Dasar Hoisting pada JavaScript

80. Memahami Nama Properti Dinamis dalam JavaScript

81. Memahami Recursion JavaScript

82. Memahami Use Strict Pada JavaScript

83. Membuat Textarea dengan Tinggi Otomatis: Solusi Elegan untuk Pengalaman Pengguna yang Lebih Baik

84. Mempelajari Javascript #04 Tipe Data Javascript

85. Mempelajari Penggunaan Event Delegation Dalam JavaScript

86. Mengenal 4 Cara Untuk Melakukan Panggilan API

87. Mengenal Class Di JavaScript

88. MengenaL Macam-Macam String Dasar JavaScript

89. Mengenal Penggunaan Fungsi Pada JavaScript

90. Mengenal Penggunaan Spread Syntax Pada JavaScript

91. Mengenal Variabel Pada JavaScript

92. Mengenali Beberapa Macam Loop Pada JavaScript

93. Mengoptimalkan Kode Dengan Destructuring Assignment

94. Meningkatkan Interaktivitas dengan Pembuatan Tab Bar : Memperkaya Navigasi Website Anda

95. Metode Console Pro

96. Metode Console yang Wajib Anda Ketahui

97. Metode flat() pada array di JavaScript

98. Operator Penyebaran JavaScript

99. Perbedaan InnerText dan InnerHTML dalam JavaScript

100. Tema Tab Responsif dengan Animasi: Meningkatkan Pengalaman Pengguna melalui Navigasi Dinamis

101. Tipe Data Java Script

102. Tips Menulis JavaScript

103. Tips Rapi Dalam Pengembangan JavaScript

104. Web APIs Di JavaScript

Masuk Terlebih dahulu untuk berkomentar

Paling baru
Lihat Lainnya