Rabu, 20 Maret 2013

TweetThis Button

Membuat Fixed Menu Ketika Scroll Dengan CSS3, Jquery & HTML5

Membuat Fixed Menu Ketika Scroll Dengan CSS3, Jquery & HTML5

Membuat menu yang posisinya selalu diatas (fixed) setelah halaman web di scroll, bukan hanya berada diatas, manu yang tadinya menyatu dengan halaman website ini akan berubah warna juga. Intinya disini kita akan belajar bagaimana menghapus dan menambah class pada tag html ketika menu di scroll dengan bantuan jquery.

Agak berbeda dengan yang kita buat sebelum nya di tutorial Membuat Menu Posisi Tetap dan Responsive dimana kita tidak membutuhkan javascript untuk itu, karena menunya sudah langsung kita letakan di bagian atas halaman website dengan CSS.

Untuk merubah bentuk menu seperti itu kita tentunya membutuhkan Javascript untuk mendapatkan event ketika mouse di scroll tersebut, kali ini kita menggunakan Jquery untuk praktek menghapus lalu menambahkan class dengan nama lain ketika website di scroll..
Oke langsung saja kita membuat struktur HTML nya, disini kita mencoba menggunakan tag-tag HTML5 untuk praktek.

Struktur HTML


Kode diatas adalah truktur HTML kita secara singkat, selangkapnya akan dijabarkan dibawah ini masing-masing isi dari setiap bagian.

Header

Bagian header umumnya kita isi dengan Judul dan keterangan tentang website tersebut (tagline).

Fixed Menu When Scroll

http://www.tutorial-webdesign.com | Image by : TheTruthAbout

Navigation

Pada bagian ini adalah menu kita, simple saja, isinya hanya sebuah div yang didalam nya ada list menu (ul > li)

Perlu diperhatikan disitu yaitu nama class dari div, yang diberi nama normal. Ini berguna untuk memberikan style utama sebelum di scroll.

Section / Konten website

Bagian ini berisi isi dari website yang kita buat, ada beberapa bagian dan kita beri setiap bagian sesuai dengan ID dari setiap menu (about, services, portfolio dan contact)

Scroll me please... ↓

Style CSS

Setelah kita selesai dengan struktur HTML yang akan dibuat, saat nya kita mulai mempercantik tampilan dengan menggunakan CSS, tidak ada css khusus yang kita perlukan karena ini hanya keperluan demo saja.

CSS Awal

ini digunakan untuk global atau keseluruhan, sebenarnya ini kurang lengkap, biasanya untuk global itu kita perlu normalize, css reset atau yang lain nya agar lebih baik, tapi ini hanya untuk demo saja.
/* Global
====================*/
*{
	padding: 0;
	margin: 0;
}
html{
	background: url(img/bg.png);
}
body{
	margin-top: 70px;
}
a{
	text-decoration: none;
	color: #333;
}

header, nav, section{
	width: 450px;
	margin: 0 auto 0px auto;
}

CSS untuk header

/* header
====================*/
header{
	padding: 10px 0;
}

CSS untuk Menu Normal

/* Menu
====================*/
#twd-menu{
	margin-bottom:20px;
}
.normal{
	padding: 10px;background: #B16B67;
}
#twd-menu ul{
	list-style-type: none;
	padding: 0;
}
	#twd-menu ul li{
		display: inline-block;
	}
		#twd-menu ul li a{
			display: inline-block;
			padding:10px;
			border-radius: 10px;
			color: #ddd;
		}
			#twd-menu ul li a:hover{
				background:black;
				color: #fff;
			}

CSS Menu ketika scroll

/* Menu When Scroll */
.fixed {
	position: fixed;
	top: -5px;
	left: 0;
	width: 100%;
	padding: 10px;
	background: #0B7271;
	color: #f8f8f8;
	-webkit-transition: top 400ms ease 0s;
	-moz-transition: top 400ms ease 0s;
	-o-transition: top 400ms ease 0s;
	-ms-transition: top 400ms ease 0s;
	transition: top 400ms ease 0s;
	box-shadow: 0 0 40px #222;
	-webkit-box-shadow: 0 0 40px #222;
	-moz-box-shadow: 0 0 40px #222;
}
.fixed ul{
	width: 450px;
	margin: 0 auto;
}

CSS untuk konten website

/* Content
=================*/
aside{
	padding: 50px 10px;
}
aside h2{
	margin: 20px 0;
}
Seperti itulah urutan css yang kita buat. Lanjut dengan Javascript

Javascript

Untuk dapat merubah class .normal menjadi .fixed, agar tampilan menu berubah kita membutuhkan Javascript, disini kita sebelum nya talah menyisipkan Jquery tentunya dibagian head dan /head.
Lalu kita membuat sebuah file javascript dengan nama twd-menu.js dengan isi seperti dibawah ini.
$(function(){

	var menu = $('#twd-menu'),
		pos = menu.offset();

		$(window).scroll(function(){
			if($(this).scrollTop() > pos.top+menu.height() && menu.hasClass('normal')){
				menu.fadeOut('fast', function(){
					$(this).removeClass('normal').addClass('fixed').fadeIn('fast');
				});
			} else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
				menu.fadeOut('fast', function(){
					$(this).removeClass('fixed').addClass('normal').fadeIn('fast');
				});
			}
		});

});
Bisa dilihat disitu kita kita pertama akan menghapus class normal, lalu menambahkan class fixed, jadi ketika class normal dihapus tentunya style yang kita tulis di css untuk class .normal tidak berguna lagi, yang terpakai adalah kode css untuk class .fixed, dimana isinya position:fixed untuk membuat posisi tidak berubah dan width:100% agar lebarnya memenuhi layar monitor.

Hasil

Berikut adalah hasil yang telah dibuat, anda bisa melihat dan mendownload kode nya dari Github.
Perlu diketahui ini hanya untuk keperluan demo, jadi tidak semua bagian kami percantik dengan CSS.

DEMO | Download Code

Source : http://www.tutorial-webdesign.com

Keren Juga Nih!

Menu Fixed Dengan CSS3 Dan jQuery 

Fixed Position Top Menu Bar with jQuery and CSS3 - nagging-menu

 

0 komentar:

Posting Komentar

.:Tutorial DHTML DLL:.

Tutorial tentang Dhtml scripts, Jquery plugins ,Javascript, CSS, CSS3, Html5 Library dll dan penerapannya pada Website, langsung aja kunjungi Website nya dan yang nggak kalah penting Free Yaa !!

.:distrowatch:.

Pengin Banyak tau tentang distro linux Langsung Aja Kunjungi DistroWatch Hmmm, banyak banget distronya, Download dan Pasang Linuxnya Lets Go Boss !!

.:jQuery Tutorial:.

Tutorial jQuery Widget ada disini semua Langsung Ke TKP Boss !!

.:Hirens Boot CD:.

Hiren's Boot CD cukup ampuh untuk membuat Clonning Atau Copy windows, dan banyak tool yang sangat berguna bagi para teknisi komputer maupun yang masih pemula silahkan Download filenya Disini kalo mau lihat tutorialnya membuat Flashdisc Bootable Disini Lumayan buat nambah ilmu dan Tool, Langsung aja Boss !!

Hiren’s BootCD

Bookmark and Share