Home » How To » Cara Membuat Snackbar Pada Website

Cara Membuat Snackbar Pada Website

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Di bawah ini kita akan mempelajari cara membuat snackbar dengan CSS dan JavaScript.

Snackbar

Snackbar sering digunakan sebagai tooltips / popup untuk menampilkan pesan di bagian bawah layar.

Klik pada tombol di bawah ini untuk menampilkan snackbar. Kemudian akan hilang setelah 3 detik.

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
#snackbar {
  visibility: hidden;
  min-width: 250px;
  margin-left: -125px;
  background-color: #D2691E;
  color: #fff;
  text-align: center;
  border-radius: 2px;
  padding: 16px;
  position: fixed;
  z-index: 1;
  left: 50%;
  bottom: 30px;
  font-size: 17px;
}

#snackbar.show {
  visibility: visible;
  -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
  animation: fadein 0.5s, fadeout 0.5s 2.5s;
}

@-webkit-keyframes fadein {
  from {bottom: 0; opacity: 0;} 
  to {bottom: 30px; opacity: 1;}
}

@keyframes fadein {
  from {bottom: 0; opacity: 0;}
  to {bottom: 30px; opacity: 1;}
}

@-webkit-keyframes fadeout {
  from {bottom: 30px; opacity: 1;} 
  to {bottom: 0; opacity: 0;}
}

@keyframes fadeout {
  from {bottom: 30px; opacity: 1;}
  to {bottom: 0; opacity: 0;}
}
</style>
</head>
<body>

<h2>Snackbar</h2>
<p> Snackbar sering kali digunakan sebagai tooltips / popup untuk menampilkan pesan di bagian bawah layar. </p>
<p> Klik tombol untuk menampilkan snackbar. Ini akan hilang setelah 3 detik. </p>

<button onclick="myFunction()">Tampilkan Snackbar</button>

<div id="snackbar">Hai ini contoh text yang ditampilkan!</div>

<script>
function myFunction() {
  var x = document.getElementById("snackbar");
  x.className = "show";
  setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000);
}
</script>

</body>
</html>

Buat Snackbar

Langkah 1) Tambahkan HTML:
Contoh

<!--Gunakan tombol untuk membuka snackbar-->
<button onclick="myFunction()">Tampilkan Snackbar</button>

<!-- Snackbar yang sebenarnya -->
<div id="snackbar">Hai ini contoh text yang ditampilkan!</div>

Langkah 2) Tambahkan CSS:
Style pada snackbar dan tambahkan animasi:
Contoh

/* Snackbar - posisikan di bagian bawah dan tengah layar */
#snackbar {
  visibility: hidden; /* Tersembunyi secara default. Terlihat saat diklik */
  min-width: 250px; /* Tetapkan lebar minimum default */
  margin-left: -125px; /*Bagilah nilai min-width dengan 2 */
  background-color: #333; /* hitam untuk warna background */
  color: #fff; /* warna text putih */
  text-align: center; /* Posisi teks di tengah */
  border-radius: 2px; /* border bulat */
  padding: 16px; /* Padding */
  position: fixed; /* Tetapkan posisi di atas layar */
  z-index: 1; /* Tambahkan indeks-z jika perlu */
  left: 50%; /* posisi tengah snackbar */
  bottom: 30px; /* 30px dari bawah */
}

/* Tampilkan snackbar saat mengklik tombol (kelas ditambahkan dengan JavaScript) */
#snackbar.show {
  visibility: visible; /* Tampilkan snackbar */
   /* Tambahkan animasi: Ambil 0,5 detik untuk memudarkan dan menghilangkan snackbar.
   Namun, tunda proses fade out selama 2,5 detik */
  -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
  animation: fadein 0.5s, fadeout 0.5s 2.5s;
}

/* Animasi untuk memudarkan snackbar in dan out*/
@-webkit-keyframes fadein {
  from {bottom: 0; opacity: 0;}
  to {bottom: 30px; opacity: 1;}
}

@keyframes fadein {
  from {bottom: 0; opacity: 0;}
  to {bottom: 30px; opacity: 1;}
}

@-webkit-keyframes fadeout {
  from {bottom: 30px; opacity: 1;}
  to {bottom: 0; opacity: 0;}
}

@keyframes fadeout {
  from {bottom: 30px; opacity: 1;}
  to {bottom: 0; opacity: 0;}
}

Langkah 3) Tambahkan JavaScript:
Gunakan JavaScript untuk menambahkan kelas “tampilkan” ke container snackbar dengan mengklik tombol:
Contoh

function myFunction() {
  // Dapatkan div
  var x = document.getElementById("snackbar");

  // Tambahkan "show" ke div
  x.className = "show";

  // setelah 3 detik, hapus kelas show dari DIV
  setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000);
}

You may also like