NAKAZI LAB.(ナカジラボ)

Webサイト制作を円滑にすることを目的とした、cssやJavaScript(jQuery)の小技備忘録サイトです。

スクロールしていった途中からナビゲーションなどの位置を固定する

2014年10月29日jQueryのみでつくるギミック

scroll-fixed-nav

以前「Sticky-Kit」という今回紹介するギミックと同じようなが出来るjQueryプラグインを紹介しましたが、今回紹介するのはjQueryとCSSで行う方法です。

こちらの方法の場合はレスポンシブWebデザインを行う際、画面が狭くなってナビゲーションを固定をすることで画面領域を圧迫したくない時も、CSS側で簡単にfixedをstaticに切り替えたりすることが可能です。

デモページ

JavaScript

(function($){
	$(function() {
		var nav = $('#nav'),
		offset = nav.offset();
		$(window).scroll(function () {
			if($(window).scrollTop() > offset.top - 20) {
				nav.addClass('fixed');
			} else {
				nav.removeClass('fixed');
 			}
		});
	});
})(jQuery);

HTML

<div id="container">
	<div id="contents">
		<div class="section">section</div>
		<div class="section">section</div>
		<div class="section">section</div>
	</div>
	<div id="side">
		<div id="nav">nav</div>
	</div>
</div>

CSS

#container {
	width: 1000px;
	margin: 0 auto;
	overflow: hidden;
}
#contents {
	width: 740px;
	float: left;
}
#contents .section {
	height: 1000px;
	margin-top: 20px;
	padding: 10px;
	background-color: #ffffff;
}
#side {
	margin: 20px 20px 0 0;
	float: right;
}
#nav {
	width: 200px;
	height: 200px;
	color: #ffffff;
	background-color: #ff5b6b;
	padding: 10px;
}
.fixed {
	position: fixed;
	top: 20px;
}
@media screen and (max-width: 480px)  {
	.fixed {
		position: static;
	}
}

参考サイト

デモページ

  • ̃Gg[͂ĂȃubN}[Nɒlj

関連記事

  1. スクロールしていった途中からナビゲーションなどの位置を固定する

更新情報をチェックする

rss feedly twitter facebook

今週の人気記事TOP10

サイト内検索

中の人

nakazi

Web関係のお仕事をしてます。効率化が大好きです。当サイトの更新情報やWeb制作に関する事を@nakazilabでつぶやいています。

連絡先

nakazilab[atmark]gmail.com