Membuat Navigasi Bergerak Yang Keren Dengan CSS dan jQuery
() translation by (you can also view the original English article)
Animasi dan feedback visual merupakan cara bagus untuk mendampingi pengguna dalam navigasi dan berinteraksi dengan sebuah website. Sementara secara tradisional Adobe Flash merupakan tujuan untuk animasi apapun, sekarang ini dengan keajaiban javascript kita dapat menghindari Flash. Hari ini kita akan membuat menu navigasi bergerak yang sangat keren hanya dengan menggunakan CSS dan jQuery.
Demo dan Source Code
Ikhtisar
Menu yang sedang kita buat dapat dilihat di dalam screenshot di bawah. Kamu juga dapat melihat versi akhirnya di sini.



Saya akan memecah tutorial ini ke dalam lima bagian sebagai berikut:
- Sketsa kasar
- Membuat Sumber
- Menuliskan HTML
- Menuliskan CSS
- Membuat animasi dengan menggunakan jQuery
Langkah 1: Sketsa Kasar
Pertama-tama mari kita lihat apa yang perlu kita lakukan di sini.



Jadi berikut ide kasar mengenai apa yang seharusnya kita lakukan:
- Kita akan memecah halaman ke dalam 4 bagian, header, navigasi dan header konten dan sisa konten.
- Area header akan berupa kontainer <div> sederhana
- Area navigasi akan dipecah ke dalam beberapa kontainer <div> yang disesuaikan dengan item menu.
- Konten akan berupa kontainer <div> sederhana
Sekarang kebanyakan waktu kita menggunakan kontainer <ul><li> namun karena setiap menu itu unik,
Saya tidak melihat keuntungan menggunakan <ul><li> sehingga sebagai gantinya saya akan menggunakan kontainer <div>.
Jadi untuk menyimpulkannya
1 |
<!-- header section-->
|
2 |
<div id="header"></div> |
3 |
|
4 |
<!-- navigation section-->
|
5 |
<div id="navigation" class="container"> |
6 |
<div><a href="#">home</a></div> |
7 |
<div><a href="#">about</a></div> |
8 |
<div><a href="#">services</a></div> |
9 |
<div><a href="#">solutions</a></div> |
10 |
<div><a href="#">contact</a></div> |
11 |
</div>
|
12 |
|
13 |
<!-- container section-->
|
14 |
<div class="container"> |
15 |
<div id="content-title"></div> |
16 |
<!-- rest of the content -->
|
17 |
</div>
|
Itu mungkin membantu untuk menunjukkan struktur direktori. Struktur direktori adalah sebagai berikut:



Langkah 2: Sumber
Saya menganggap kamu memiliki pengetahuan dasar dalam menggunakan Photoshop, sehingga saya tidak akan memberikan instruksi yang terlalu detail dalam membuat sumber.
Ada beberapa hal yang perlu kita buat.
- Background Header
- Judul Konten
- Navigasi
- Strip background
Perhatikan bahwa jika kamu ingin melewatkan langkah ini kamu dapat mengunduh file zip utuh di akhir tutorial dan mengekstrak salinan saya!
Oke, mari membuat background header. Buka Photoshop dan buat kanvas 1x181 px, atau kamu dapat membuatnya lebih besar dan kemudian memotong gambar.
Buat sebuah layer dan berikan gradien linier dengan preset Foreground to Background untuk 171px, ini akan menjadi gradien utama.
Buat layer lainnya dan berikan itu gradien linier dengan preset Foreground to Background sekitar 10px di bawah layer pertama untuk beberapa efek bayangan.
Berikut merupakan tampak seharusnya, itu 100x181 px yang nantinya saya crop menjadi 1x181 px.



Simpan ini sebagai 'hdr-bkg.png' di dalam folder 'img'.
Berikutnya, kita akan membuat judul konten. Sekali lagi, buka Photoshop dan buat 934x284 px.
Buat persegi panjang melengkung dengan menggunakan tool yang sesuai, pilih buat yang dibuat, buat sebuah layer baru, tambahkan gradien dan beri itu beberapa drop shadow.
Maka kita akan mendapatkan sesuatu seperti ini:



Simpan ini sebagai 'content-title.png' di dalam folder 'img'.
Sekarang mari kita buat sumber yang diperlukan oleh navigasi. Kita memerlukan dua set navigasi dan kotak putih.
Kotak putihnya sederhana. Buat sebuah persegi panjang melengkung sekitar 98px x 58px dan lukis itu dengan warna putih. Pastikan bahwa background transparan.

Simpan ini sebagai 'white.jpg' di dalam folder 'img'.
Untuk item navigasi, buka Photoshop dan buat dokumen 490px x 58px.
Buat sebuah persegi panjang melengkung dengan sekitar 98px x 58px dan buat beberapa teks di dalamnya. Kita akan memerlukan dua salinan untuk tiap teks.
Saya menerapkan sedikit drop shadow pada tiap teks, namun tentu saja ini opsional. Kamu dapat memilih warnamu sendiri untuk ditempatkan di sini.



Sekarang duplikasikan layer ini sepanjang garis horizontal. Terapkan warna dan teks yang berbeda.



Simpan ini sebagai 'nav.jpg' di dalam folder 'img'.
Terakhir, untuk strip background saya menggunakan sebuah online tool bernama the Stripe Generator. Outputnya tampak seperti ini:

Kamu dapat melihat pengaturan saya di sini.
Tentu saja kamu dapat membuat strip sendiri dalam Photoshop, namun mengapa tidak menggunakan web tool kecil yang rapi :-)
Langkah 3: kode HTML
Sekarang mari kita catat HTML kita.
1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
2 |
<html xmlns="http://www.w3.org/1999/xhtml"> |
3 |
<head>
|
4 |
<title>slick animated menu</title> |
5 |
<!--our CSS file-->
|
6 |
<link rel="stylesheet" href="css/main.css" type="text/css" /> |
7 |
<!--jQuery library-->
|
8 |
<script type="text/javascript" src="js/jquery.js" ></script> |
9 |
<!--jQuery plugin, we’ll get to this later-->
|
10 |
<script type="text/javascript" src="js/jquery-bp.js" ></script> |
11 |
<!--Our animation script-->
|
12 |
<script type="text/javascript" src="js/navigation.js" ></script> |
13 |
</head>
|
14 |
<body>
|
15 |
<div id="header"></div> |
16 |
<div id="navigation" class="container"> |
17 |
<div id="home"><a href="home">home</a></div> |
18 |
<div id="about"><a href="about">about</a></div> |
19 |
<div id="services"><a href="services">services</a></div> |
20 |
<div id="solutions"><a href="solutions">solutions</a></div> |
21 |
<div id="contact"><a href="contact">contact</a></div> |
22 |
</div>
|
23 |
<div class="container"> |
24 |
<div class="content"> |
25 |
<div id="content-title"></div> |
26 |
<!-- the rest of the content-->
|
27 |
</div>
|
28 |
</div>
|
29 |
</body>
|
Ini cukup banyak berdasarkan pada rencana kita yang dijelaskan dalam Langkah 1
Saya telah menambahkan tautan ke file 'main.css' yang belum dibuat dan
Saya juga telah menambahkan beberapa referensi pada beberapa file javascript. Karena tiap item navigasi itu unik saya telah memberikan ID untuk masing-masing item.
Kita akan tetap memerlukan beberapa style umum pada tiap item menu, ini akan membuatnya mudah bagi kita untuk mengelola style dalam tahap nantinya.
Kita juga akan memiliki sebuah kotak putih di atas tiap item navigasi, ketika kita mengarahkan pada menu atau item yang sedang dipilih, sehingga kita akan menambahkan kontainer <div> lainnya untuk itu. HTML akhir akan tampak seperti ini:
1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
2 |
<html xmlns="http://www.w3.org/1999/xhtml"> |
3 |
<head>
|
4 |
<title>slick animated menu</title> |
5 |
|
6 |
<link rel="stylesheet" href="css/main.css" type="text/css" /> |
7 |
|
8 |
<script type="text/javascript" src="js/jquery.js" ></script> |
9 |
<script type="text/javascript" src="js/jquery-bp.js" ></script> |
10 |
<script type="text/javascript" src="js/navigation.js" ></script> |
11 |
</head>
|
12 |
<body>
|
13 |
<div id="header"></div> |
14 |
<div id="navigation" class="container"> |
15 |
<div id="home" class="pri-nav"><div><a href="home">home</a></div></div> |
16 |
<div id="about" class="pri-nav"><div><a href="about">about</a></div></div> |
17 |
<div id="services" class="pri-nav"><div><a href="services">services</a></div></div> |
18 |
<div id="solutions" class="pri-nav"><div><a href="solutions">solutions</a></div></div> |
19 |
<div id="contact" class="pri-nav"><div><a href="contact">contact</a></div></div> |
20 |
</div>
|
21 |
<div class="container"> |
22 |
<div class="content"> |
23 |
<div id="content-title"></div> |
24 |
<!-- the rest of the content-->
|
25 |
</div>
|
26 |
</div>
|
27 |
</body>
|
Simpan ini sebagai 'index.html'. Hingga pada titik ini kita memiliki ini sebagai halaman HTML kita:



Langkah 4: CSS
Mari kita terapkan beberapa style dasar pada halaman Web. Kita akan mulai dengan menentukan background dan menambahkan area header.
1 |
body { |
2 |
background: url(../img/body-bkg.jpg) repeat scroll; |
3 |
margin: 0; |
4 |
padding: 0; |
5 |
}
|
6 |
|
7 |
.containe r{ |
8 |
margin: 0pt auto; |
9 |
width:950px; |
10 |
}
|
11 |
#header { |
12 |
background: url(../img/hdr-bkg.jpg) repeat-x scroll; |
13 |
height:181px; |
14 |
}
|
Simpan ini sebagai ‘main.css’ di dalam 'css'.
Sekarang kita memiliki sesuatu yang tampak seperti:



Sekarang mari tambahkan style pada tiap item menu. Ingatlah kita ingin kotak putih pada bagian atas tiap item menu,
sehingga position harus diatus ke absolute. Tambahkan style berikut di dalam file 'main.css'.
1 |
#navigation{ |
2 |
height:60px; |
3 |
}
|
4 |
|
5 |
#home, #home div, |
6 |
#about, #about div, |
7 |
#services , #services div, |
8 |
#solutions, #solutions div, |
9 |
#contact, #contact div { |
10 |
height:80px; |
11 |
position:absolute; |
12 |
width:97px; |
13 |
float:left; |
14 |
}
|
15 |
|
16 |
#home, #about, #services, #solutions, #contact{ |
17 |
background-image: url(../img/nav.jpg); |
18 |
background-attachment: scroll; |
19 |
background-repeat: no-repeat; |
20 |
top:171px; |
21 |
}
|
22 |
|
23 |
#home{ |
24 |
background-position: 0px -25px; |
25 |
margin-left:6px; |
26 |
}
|
27 |
|
28 |
#about{ |
29 |
background-position: -98px -25px; |
30 |
margin-left:105px; |
31 |
}
|
32 |
|
33 |
#services{ |
34 |
background-position: -196px -25px; |
35 |
margin-left:204px; |
36 |
}
|
37 |
|
38 |
#solutions{ |
39 |
background-position: -294px -25px; |
40 |
margin-left:303px; |
41 |
}
|
42 |
|
43 |
#contact{ |
44 |
background-position: -392px -25px; |
45 |
margin-left:402px; |
46 |
}
|
47 |
|
48 |
#home div, #about div, #services div, #solutions div, #contact div { |
49 |
background-image: url(../img/white.jpg); |
50 |
background-attachment: scroll; |
51 |
background-repeat: no-repeat; |
52 |
background-position: 0px -60px; |
53 |
}
|
Sekarang kita memiliki:



Satu masalah, tautan <a href> muncul di atas item menu, mari hapus itu dengan indentasi teks yang besar - secara efektif mengambil itu keluar layar.
Tambahkan ini ke style sheet.
1 |
.pri-nav a{ |
2 |
display:block; |
3 |
text-decoration:none; |
4 |
text-indent:-30000px; |
5 |
}
|
Sekarang itu akan tampak seperti ini:



Kita masih memiliki satu masalah, kita menginginkan menu navigasi muncul di bawah bayangan header. Kita bisa mencapai itu dengan memodifikasi header style kita.
1 |
#header{ |
2 |
background: url(../img/hdr-bkg.jpg) repeat-x scroll; |
3 |
height:181px; |
4 |
position:absolute; |
5 |
z-index :100; /* ensure the header is on top of navigation area */ |
6 |
top: 0px; |
7 |
left:0px; |
8 |
width:100%; |
9 |
}
|
Sekarang karena kita menggunakan file .png dengan transparansi, itu harusnya tampak seperti ini:



Sempurna! Mari tambahkan konten sehingga kita bisa mendapatkan script animasi kita.
1 |
.content{ |
2 |
margin-top:160px; |
3 |
}
|
4 |
|
5 |
#content-title{ |
6 |
background: url(../img/content.jpg) no-repeat scroll; |
7 |
height:323px; |
8 |
position:absolute; |
9 |
width:100%; |
10 |
}
|
Langkah 5: Script animasi
Pertama-tama mari unduh script jQuery terbaru dan tempatkan itu di dalam folder 'js'.
Animiasi ini pada dasarnya adalah sebuah manipulasi style background position.
Sayangnya jQuery memiliki bug dalam menggerakkan style background position. Namun jangan khawatir! Alexander Farkas telah membuat sebuah plugin yang menyelesaikan masalah ini.
Download file dan namai ulang menjadi jquery-bp.js dan simpan itu di dalam 'js'.
Ada sesuatu yang perlu kita mengerti sebelum melanjutkan. Saya mengutip dari dokumentasi plugin:
Dikarenakan beberapa bugs pada browser (yaitu Firefox, kamu harus mengatur (initial) background-position inline:
<div style="background-position: 10px 20px"></div>
- Tentu saja kamu dapat mencapai ini dengan JavaScript (jQuery):
$('#background').css({backgroundPosition: '10px 20px'});
Oke sekarang setelah kita mengerti itu, mari kita mulai. Kita akan mengatur style background position untuk setiap item di dalam awal script.
1 |
// id for each of our menu items
|
2 |
var nav = [ '#home', '#about', '#services', '#solutions', '#contact' ]; |
3 |
$(document).ready(function(){ |
4 |
setBkgPos(); |
5 |
});
|
6 |
|
7 |
function setBkgPos() |
8 |
{
|
9 |
for ( i = 0; i < nav.length; i++ ){ |
10 |
$(nav[i]).css({backgroundPosition: i*(-98) + 'px -25px'}); |
11 |
$(nav[i] + ' div').css({ backgroundPosition: '0px -60px'}); |
12 |
}
|
13 |
}
|
Simpan ini sebagai 'navigation.js' di dalam folder 'js'.
Sekarang kita akan mengikat 3 event pada tiap item menu. Kita dapat melakukan ini dengan memicu fungsi bind.
1 |
$(document).ready(function(){ |
2 |
setBkgPos(); |
3 |
|
4 |
// bind the event to function here
|
5 |
for ( i = 0; i < nav.length; i++ ) { |
6 |
$(nav[i]).bind( 'mouseover', mMouseOver ); |
7 |
$(nav[i]).bind( 'mouseout', mMouseOut ); |
8 |
$(nav[i]).bind( 'click', mClick ); |
9 |
}
|
10 |
});
|
Kapanpun pengguna mengarahkan pada item navigasi script kita akan memanggil fungsi 'mMouseOver'.
Ketika pengguna mengarahkan item navigasi script kita akan memanggil fungsi 'mMouseOut'.
Dan ketika pengguna mengklik item navigasi, script kita akan memanggil fungsi 'mClick'
Langkah 5.1: Mouse over
Mari membuat sebuah "papan cerita" untuk animasi mouse over.
Pada 'Mouse Over':
- Mengubah gambar menu navigasi (pendar) dan mengubah kursor menjadi pointer.
- Navigasi akan bergerak sedikit ke atas.
- Kotak putih akan bergerak ke bawah.
- Baik kotak putih dan menu navigasi akan turun.
- Menu navigasi dan kotak putih akan bergerak ke atas hingga posisi akhirnya.
- Dan mengubah gambar menu navigasi ke keadaan aslinya.



Oke mari tambahkan fungsi berikut di bawah script sebelumnya:
1 |
function _getHPos( id ) |
2 |
{
|
3 |
for ( i = 0; i < nav.length; i++ ){ |
4 |
if ( '#' + id == nav[i] ){ |
5 |
return i*(-98); |
6 |
}
|
7 |
}
|
8 |
return 0; |
9 |
}
|
10 |
|
11 |
function mMouseOver(e) |
12 |
{
|
13 |
$(this) |
14 |
// stop any animation that took place before this
|
15 |
.stop() |
16 |
// step 1. change the image file and change the cursor
|
17 |
.css({backgroundImage: 'url('+site_url+'img/nav-over.jpg)',cursor: 'pointer'}) |
18 |
// step.2 move up the navigation item a bit
|
19 |
.animate({ backgroundPosition:'(' + _getHPos( this.id ) +'px -30px}'},"fast", |
20 |
// this section will be executed after the step.2 is done
|
21 |
function(){ |
22 |
$(this) |
23 |
.children() |
24 |
// step. 3 move the white box down
|
25 |
.animate({backgroundPosition:'(0px -40px)'},20) |
26 |
// step 4. move the white box down
|
27 |
.animate({backgroundPosition:'(0px -20px)'},"fast"); |
28 |
$(this) |
29 |
// step 4. move the navigation item down
|
30 |
.animate({backgroundPosition:'(' + _getHPos( this.id ) +'px 50px)'},"fast") |
31 |
// step 5. move the navigation item to its final position
|
32 |
.animate({backgroundPosition:'(' + _getHPos( this.id ) +'px 25px)'},"fast"); |
33 |
// store the parent element id for later usage
|
34 |
var parent = this; |
35 |
$(this) |
36 |
.children() |
37 |
// step 5. move the white box to its final position
|
38 |
.animate( {backgroundPosition:'(0px -45px)'},"fast", |
39 |
// this section will be executed after the step.2 is done
|
40 |
function(){ |
41 |
// step.6 change the image to its original image
|
42 |
$(parent).css({backgroundImage: 'url(img/nav.jpg)'}); |
43 |
});
|
44 |
});
|
45 |
}
|
Saya perlu menjelaskan beberapa hal di sini:
- _getHPos digunakan untuk menyesuaikan navigasi horizontal background position untuk tiap item.
Sebagai contoh, background item ‘Home’ akan mulai dari 0, horizontal background position pada ‘About’ dimulai dari -98px, dan sebagainya. - Juga sadari bahwa di awal fungsi kita memicu fungsi 'stop'. Kita melakukan ini untuk memastikan animasi apapun yang berjalan sebelum event 'mouse over' telah berhenti.
Mengapa? Kita akan menambahkan animasi nantinya untuk event 'mouse out'.
Sekarang mari bayangkan pengguna mengarahkan pada sebuah item dan kemudian memindahkan pointer mouse dengan cepat ke tempat lainnya dan kembali lagi ke item yang sama secara cepat.
Jika kita tidak menghentikan animasi sebelum tiap event, akan ada penundaan karena beberapa bagian animasi akan mengantri atau bahkan lebih buruk lagi akan menjadi tidak konsisten dan mengganggu pengguna.
Langkah 5.2: Mouse out
Sekarang itu selesai. Mari membuat "papan cerita" untuk event 'mouse out'.
Pada 'Mouse Out':
- Menurunkan item navigasi.
- Memindahkan kotak putih ke bawah.
- Memindahkan navigasi ke atas.
- Menaikkan item navigasi dari posisi aslinya.
- Memindahkan kotak putih ke posisi aslinya (tidak terlihat).
- Mengembalikan kursor ke normal.



Kode:
1 |
function mMouseOut(e) |
2 |
{
|
3 |
$(this) |
4 |
// stop any animation that took place before this
|
5 |
.stop() |
6 |
// step.1 move down navigation item
|
7 |
.animate({backgroundPosition:'(' + _getHPos( this.id ) +'px 40px )'}, "fast", |
8 |
// this section will be executed after the step.1 is done
|
9 |
function(){ |
10 |
// step.2 white box move really fast
|
11 |
$(this).children().animate({backgroundPosition:'(0px 70px)'}, "fast"); |
12 |
// step 3. move navigation item up
|
13 |
$(this).animate( {backgroundPosition:'(' + _getHPos( this.id ) +'px -40px)'}, "fast", |
14 |
// this section will be executed after the step.3 is done
|
15 |
function(){ |
16 |
// step 4. move navigation item ot its original position
|
17 |
$(this).animate( {backgroundPosition:'(' + _getHPos( this.id ) +'px -25px)'}, "fast", |
18 |
// this section will be executed after the step.4 is done
|
19 |
function(){ |
20 |
// move white box to its original position, ready for next animation
|
21 |
$(this).children().css({ backgroundPosition:'0px -60px'}); |
22 |
})
|
23 |
})
|
24 |
})
|
25 |
.css({backgroundImage: 'url(img/nav.jpg)', cursor: ''}); |
26 |
}
|
Langkah 5.3: Click
Hampir selesai! Sekarang kita perlu menangani ketika pengguna mengklik item navigasi.
1 |
function mClick(e) |
2 |
{
|
3 |
location.href = this.id; |
4 |
}
|
Tentu saja kamu dapat mengarahkan ke lokasi manapun yang kamu rasa cocok. Fungsi khusus ini akan mengarahkan browser ke [current_url]/[navigation_id] sehingga untuk ‘home’ itu akan menjadi ‘[current_url]/home’, untuk ‘about’ itu akan menjadi ‘[current_url]/about’ dan sebagainya.
Langkah 5.4: Indikator halaman terkini
Tentu saja kita memerlukan sebuaih indikator ketika kita sudah berada dalam halaman. Untuk itu kita memerlukan CSS class lainnya.
Kita akan menyebut class tersebut ‘active’. Sebagai contoh jika kita sekarang berada di 'home' file HTML akan menjadi:
1 |
<div id="home" class="pri-nav active"><div><a href="home">home</a></div></div> |
Atau jika kita di 'about' itu akan menjadi:
1 |
<div id="about" class="pri-nav active"><div><a href="about">about</a></div></div> |
dan sebagainya.
Jadi sekarang idenya setelah sebuah halaman dimuat script kita akan memeriksa untuk melihat item navigasi yang mana yang memiliki class 'active'.
Lalu kita menerapkan efek animasi. Dan kita perlu memastikan event lainnya ( ‘mouseover’, ‘mouseout’, ‘click’) tidak akan menyebabkan efek animasi pada item 'active' ini.
Untuk itu kita perlu sedikit mengubah kode. Berikut kode lengkap setelah perubahan:
1 |
var site_url = ''; |
2 |
var nav = [ '#home', '#about', '#services', '#solutions', '#contact' ]; |
3 |
|
4 |
$(document).ready(function(){ |
5 |
setBkgPos(); |
6 |
|
7 |
for ( i = 0; i < nav.length; i++ ) { |
8 |
$(nav[i]).bind( 'mouseover', mMouseOver ); |
9 |
$(nav[i]).bind( 'mouseout', mMouseOut ); |
10 |
$(nav[i]).bind( 'click', mClick ); |
11 |
}
|
12 |
|
13 |
for ( i = 0; i < nav.length; i++ ) { |
14 |
// element with ‘active’ class will start animation
|
15 |
if ( $(nav[i]).get(0).className.indexOf('active') >= 0 ){ |
16 |
$(nav[i]) |
17 |
.animate({ backgroundPosition:'(' + _getHPos( nav[i] ) +'px -30px}'},"fast", |
18 |
function(){ |
19 |
$(this) |
20 |
.children() |
21 |
.animate({backgroundPosition:'(0px -40px)'},20) |
22 |
.animate({backgroundPosition:'(0px -20px)'},"fast"); |
23 |
$(this) |
24 |
.animate({backgroundPosition:'(' + _getHPos( nav[i] ) +'px 50px)'},"fast") |
25 |
.animate({backgroundPosition:'(' + _getHPos( nav[i] ) +'px 25px)'},"fast"); |
26 |
var parent = this; |
27 |
$(this) |
28 |
.children() |
29 |
.animate( {backgroundPosition:'(0px -45px)'},"fast", |
30 |
function(){ |
31 |
$(parent).animate({backgroundPosition:'(' + _getHPos( parent.id ) +'px 25px)'},"fast"); |
32 |
$(parent).css({backgroundImage: 'url(img/nav.jpg)'}); |
33 |
});
|
34 |
});
|
35 |
break; |
36 |
}
|
37 |
}
|
38 |
});
|
Selesai!
Dan dengan itu kita mendapatkan menu kecil yang berguna.