menu
menu

グローバルナビをトップに固定するスティッキーナビ+ドロップダウンメニュー | Webデザインラボ

キーワード検索

11月のアクセストップ10

  1. ( 1-) スマホサイトの作成・基本編
  2. ( 3↑) CSSだけでドロップダウンメニュー
  3. ( 2↓) CSSだけでサイズ可変・スマホ対応のアコーディオン
  4. ( 4-) HTML5・ページ作成の基本
  5. ( 5-) jQueryでドロップダウンメニュー
  6. ( 6-) スマホ・タブレット・PCの振り分けいろいろ
  7. ( 9↑) 表示しているブラウザの高さを取得してCSSのheightに指定
  8. ( 8-) Windows 10にApache2.4 VC11をインストール
  9. ( 7↓) JavaScriptで新しいウィンドウを開く
  10. (-↑) CSSだけでブロック要素の表示非表示(トグルボタン)
  • facebook3
  • はてなブックマーク3
  • Google+0
  • Pocket0
  • Twitter0

グローバルナビをトップに固定するスティッキーナビ+ドロップダウンメニュー

  • Labs

jQuery

こんにちは(・∀・)

 今回はjQueryでグローバルナビゲーションをトップに固定するスティッキーナビ+ドロップダウンメニューをご紹介します。

サンプルデモ

 サンプルデモはこちら!

 スマホやタブレットでは通常のグローバルナビにしたい場合、userAgentで振り分ける方法も記載してありますのでお試しください。

 *position指定してありますのでレイアウトする際ご注意ください。


HTML

 Google Hosted LibrariesからjQuery 1.x snippetを<head>内に読み込みます。


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>

<div id="nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Strategy</a>
	<ul>
	<li><a href="#">example.com</a></li>
	<li><a href="#">example.com</a></li>
	</ul>
</li>
<li><a href="#">About</a>
	<ul>
	<li><a href="#">example.com</a></li>
	<li><a href="#">example.com</a></li>
</ul>
</li>
<li><a href="#">Works</a>
	<ul>
	<li><a href="#">example.com</a></li>
	<li><a href="#">example.com</a></li>
	</ul>
</li>
<li><a href="#">Mail</a></li>
</ul>
<!--nav--></div>
CSS

#nav  {
	width: 100%;
	text-align: center;
}
#nav ul  {
	overflow: hidden;
	width: 565px;
	margin: 0 auto;
}
#nav ul li  {
	float: left;
}
#nav ul li a {
	font-size: 14px;
	display: block;
	width: 108px;
	height: 40px;
	margin: 1px 0 0 1px;
	padding: 1px 2px;
	line-height: 1.4;
	color: #ffffff;
	background: #9fb7d4;
	text-align: center;
}
#nav ul li a:hover {
	color: #ffffff;
	background: #afc6e2;
}
#nav li ul {
	width: 113px;
	display: none;
	position: absolute;
	z-index: 1000;
	background: #ffffff;
}
#nav li ul li {
	float: none;
}
#nav li ul li a {
	background: #9fb7d4;
}
JavaScript

$(function() {
var nav = $('#nav');
var navTop = nav.offset().top;
$(window).scroll(function () {
var winTop = $(this).scrollTop();
if (winTop >= navTop) {
nav.css({
'position': 'fixed',
'top':'0',
'background': 'white',
'z-index': '1000',
'width': '100%',
'text-align': 'center',
'padding-bottom': '5px'
});
} else if (winTop <= navTop) {
nav.css({
'position': 'static',
'top': '',
'background': ''
});
}
});
});
//ドロップダウンメニュー
$(function() {
var nav = $('#nav');
var navTop = nav.offset().top;
$('li', nav).hover(function(){
$('ul',this).stop().slideDown('fast');
},
function(){
$('ul',this).stop().slideUp('fast');
});
});

 *スマホやタブレットでは通常のグローバルナビにしたい場合、以下の様にuserAgentで振り分ける。


var ua = navigator.userAgent;
if (ua.indexOf('iPhone') != -1 || ua.indexOf('iPad') != -1 || ua.indexOf('iPod') != -1 || ua.indexOf('Android') != -1) {
//iPhone、iPad、iPod、Androidの場合何もしない。
}
else{
//それ以外の場合はnavをトップ固定。
$(function() {
var nav = $('#nav');
var navTop = nav.offset().top;
$(window).scroll(function () {
var winTop = $(this).scrollTop();
if (winTop >= navTop) {
nav.css({
'position': 'fixed',
'top':'0',
'background': 'white',
'z-index': '1000',
'width': '100%',
'text-align': 'center',
'padding-bottom': '5px'
});
} else if (winTop <= navTop) {
nav.css({
'position': 'static',
'top': '',
'background': ''
});
}
});
});
//ドロップダウンメニュー
$(function() {
var nav = $('#nav');
var navTop = nav.offset().top;
$('li', nav).hover(function(){
$('ul',this).stop().slideDown('fast');
},
function(){
$('ul',this).stop().slideUp('fast');
});
});
}

関連リンク

 スクロールしても要素が固定するスティッキーサイドバー

 グローバルナビをトップに固定するスティッキーナビ

  • カテゴリー:Labs
  • facebook3
  • はてなブックマーク3
  • Google+0
  • Pocket0
  • Twitter0