twitter ■お問い合わせ当サイトへのリンクサイト仕様

現在位置 > LostTechnology > WebDesign > jQueryでページの先頭にスクロールさせる

jQueryでページの先頭にスクロールさせる

A要素のhref属性に#を指定されたリンクをクリックするとWebページの先頭に移動するわけですが、アドレス末尾に#がつくのを好まない人もいるんじゃないかと思います。そこでjQueryを利用してページの先頭までスクロールして戻すコードを書いてみました。

導入方法は簡単です。まずはHEAD要素内に以下の行を追加してjQueryを利用できるようにします。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

ここではGoogleからjQueryを読み込んでいますが、自分のWebサイトにjQueryを置いて、それを読み込ませるようにしても問題ありません。

続けてjQueryを読み込ませた次の行へ以下のようにJavaScriptを記述してください。汎用性とメンテナンス性を考慮し、外部JavaScriptファイルにしておき、それを読み込んだほうがよいでしょう。

<script type="text/javascript">
$(function() {
	$('a[href=#]').click(function() {
		$('html, body').animate({scrollTop:0},'fast');
		$('html, body').animate({scrollLeft:0},'fast');
		return false;
	});
});
</script>

ページの先頭へのリンクにクリックイベントを割り当て、アニメーションでスクロールアップとスクロールレフトを行ないます。サンプルのコードは'fast'を指定しているため200ミリ秒です。'slow'を指定すると600ミリ秒となります。数値で400などと指定してもかまいません。ユーザーを待たせすぎないような範囲で指定しましょう。

最初は$('body').animate({scrollTop:0},'fast');と書いていたら、普段メインで使っているGoogle Chromeでしか動かなくてしばらく悩みました。どうもFirefoxやInternet Explorerではhtmlのほうを使わないといけないようで……。

ブラウザはFirefox、Google Chrome、Internet Explorer 6/7/8/9、Operaを用いて表示を確認しました。