Tutorial sederhana untuk membuat sidebar menu responsif dengan vanilla JavaScript menggunakan fungsi add/remove classList tanpa menggunakan library jQuery
Alat dan bahan
Untuk alat pengkodean, silakan gunakan editor favorit Anda, Visual Code, Brackets atau Sublime text editor
Bahan untuk membuat navigasi side menu
Pertama, siapkan template HTML dasar yang sudah berisi menu sidebar
Dalam tutorial ini, kami menggunakan framework CSS Basscss yang merupakan paket lengkap //unpkg.com/ace-css/css/ace.min.css
Berikut adalah isi file template HTML dasar untuk membuat menu nav sidebar sederhana
HTML Template Simple Sidebar Menu → by InsertApps.com
/*Additional Style */
/* ######## START FOCUS CSS CODE HERE */
#sidenav {
max-height: 100vh;
height: 100vh;
max-width: 70vw;
min-width: 300px;
overflow-x: hidden;
overflow-y: auto;
transition: all .3s ease-in-out;
transform: translate[-150%, 0px];
-webkit-transform: translate[-150%, 0px];
/* Safari 3-4, iOS 4.0.2 - 4.2, Android 2.3+ */
-ms-transform: translate[-150%, 0px];
}
#sidenav.active {
transition: all .3s ease-in-out;
transform: translate[0%, 0px];
-webkit-transform: translate[0%, 0px];
-ms-transform: translate[0%, 0px];
box-shadow: 0 4px 6px rgba[0, 0, 0, .4];
}
/* ######## END FOCUS CSS CODE HERE */
.burger {
height: 16px
}
.burger span {
display: block;
width: 20px;
height: 2px;
border-radius: 3px;
}
.pointer {
cursor: pointer;
}
.close {
width: 23px;
height: 23px;
}
.cross {
height: 23px;
width: 2px;
border-radius: 3px;
}
.cross.left {
transform: rotate[45deg];
}
.cross.right {
transform: rotate[-45deg];
}
.align-middle {
vertical-align: middle
}
Logo
About
Blog
InsertApps
about
About
Email
RSS
Categories
Category Item
Category Item
Category Item
HTML Template Simple Sidebar Menu
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Asperiores, deleniti molestias consectetur iure
consequuntur quisquam hic culpa voluptatibus sint quos reprehenderit. Fugiat distinctio dolorem rerum ipsa
quisquam quam, atque enim.
Image source by Freebiespic.com
Copyright ©2020 → InsertApps.com. All rights reserved. Privacy
let burger = document.querySelector['.burger'];
let close = document.querySelector['.close'];
let sidenav = document.querySelector['#sidenav'];
// Burger click function
burger.addEventListener['click', function [] {
sidenav.classList.add['active'];
}];
// Close click function
close.addEventListener['click', function [] {
sidenav.classList.remove['active'];
}];
Wow…. 😱 Kode dasarnya sangat panjang
Yups.. Biar gak bingung, lihat Demo rendering kode HTML di atas. 😎
Yang perlu diperhatikan hanya pada jalur eksisting
Selebihnya hanyalah template HTML biasa dengan sentuhan desain yang cukup rapi dan enak dipandang
Tombol Menu Burger
Pertama siapkan tombol klik yang akan memicu tampilan menu sidebar
_Penjelasan lengkap kode tombol burger silahkan baca tutorial singkat Cara membuat icon menu hamburger website sederhana
Kelas burger
sekaligus menjadi pengenal untuk skrip JavaScript
Menu Sidebar Desain HTML
Kedua, mari fokus pada potongan kode HTML yang membentuk desain menu sidebar
...
...
...
Apapun model desain sidebar nav yang anda buat, pastikan elemen blok sidenav ditandai dengan salah satu unique id atau bisa juga dengan memanggil salah satu unique class
Dalam tutorial ini, id unik. id="sidenav"
Mengapa Anda memerlukan id unik atau salah satu kelas unik?
Id unik ini akan dieksekusi oleh javascript untuk tujuan memanipulasi objek elemen HTML
Desain tiga elemen blok menu sidebar setidaknya memiliki gaya berikut
#sidenav {
max-height: 100vh;
height: 100vh;
max-width: 70vw;
min-width: 300px;
overflow-x: hidden;
overflow-y: auto;
/* Default hide effect*/
transition: all .3s ease-in-out;
transform: translate[-150%, 0px];
}
#sidenav.active {
/* Reactivate hide effect*/
transition: all .3s ease-in-out;
transform: translate[0%, 0px];
/* Effect shadow for sidebar*/
box-shadow: 0 4px 6px rgba[0, 0, 0, .4];
}
Penjelasan gaya CSS
Kelas gaya blok dengan id #sidenav { }
_ akan merender blok elemen sidebar yang memanjang secara vertikal di sepanjang layar browser
Sidebar menu ini disembunyikan melalui fungsi
0 dengan minus 150pxProperti CSS
_1 dengan nilai input
2 adalah untuk memindahkan elemen. Dengan memberikan nilai pada parameter
3 dan
4 dapat menentukan jarak perpindahan suatu elemenKemudian siapkan style css lainnya
_5 yang berfungsi untuk mengirimkan elemen sidebar yang sebelumnya tersembunyi untuk muncul di layarProperti CSS
_6 berfungsi untuk membuat efek animasi bergerak halus dari elemen HTMLJavascript menampilkan sembunyikan menu sidebar
Ketiga dan terakhir, script JavaScript yang akan mengeksekusi menu sidebar
let burger = document.querySelector['.burger'];
let close = document.querySelector['.close'];
let sidenav = document.querySelector['#sidenav'];
// Burger click function
burger.addEventListener['click', function [] {
sidenav.classList.add['active'];
}];
// Close click function
close.addEventListener['click', function [] {
sidenav.classList.remove['active'];
}];
Penjelasan kode vanilla JavaScript buka sembunyikan menu navigasi sidebar
Siapkan tiga variabel untuk memanggil elemen HTML apa pun yang akan dieksekusi oleh JavaScript
Ketiga variabel
_7,
8 dan
9 berisi nilai
...
...
...
0 khusus untuk memilih HTML DOMKemudian tambahkan acara klik
...
...
...
_1Perintah
...
...
...
_2 adalah salah satu method-function-JavaScript yang berfungsi untuk membuat event [click, change, mouseout, dll] yang memanipulasi DOMDengan memanfaatkan properti
...
...
...
_3 JavaScript, sangat berguna untuk menambah, menghapus, dan beralih dari kelas CSS yang ada di elemen HTMLKode
...
...
...
_4 berfungsi untuk memasukkan class
...
...
...
5 ke dalam blok sidebar menu, secara default class
...
...
...
5 kosongBaris kode terakhir
...
...
...
7 berfungsi untuk menghapus class
...
...
...
5 agar menu sidebar kembali ke posisi semula, tersembunyi