一定量スクロールすると表示する「ページトップ」ボタンの実装方法

こんにちは。デザイナーの(鈴)です。
今回は「ページトップ」ボタンのちょっとしたスクリプトを紹介します。

一定量スクロールすると「ページトップ」ボタンが表示されるサイトがあります。
フェードやスライド表示することで、動きのあるサイトにしたい時や、
メインビジュアルが大きく、ファーストビューで「ページトップ」ボタンを
表示したくない場合にはとても便利なスクリプトです。
それでは実装方法を紹介していきます。

html

下記は「ページトップ」ボタンが画像の場合の記述になります。
CSSのみでの表示も可能です。

<p class="pagetop"><a href="#container"><img src="img/pagetop.png" alt="PAGE TOP" /></a></p>

 

CSS

.pagetop {
position: fixed;
bottom: 20px;
right: 20px;
}

「fixed」にして固定配置にしています。
デザインに合わせて値を変更してください。

javascript

まずjQuery本体ファイルを読み込みます。

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

今回の記述は下記のようになります。

//pagetop
$(function() {
var topBtn = $('.pagetop');    
topBtn.hide();
//スクロールが100に達したらボタン表示
$(window).scroll(function () {
if ($(this).scrollTop() > 100) {
//ボタンの表示方法
topBtn.fadeIn();
} else {
//ボタンの非表示方法
topBtn.fadeOut();
}
});
//スクロールしてトップ
topBtn.click(function () {
$('body,  html').animate({
scrollTop: 0
},   500);
return false;
});
});

9行目の「topBtn.fadeIn();」部分で表示方法、
12行目の「topBtn.fadeOut();」部分で非表示方法を指定しています。
今回はフェードですが、スライドなどのアニメーションも可能です。

18行目の「scrollTop() > 100」部分でスクロールした量を指定しています。
スクロール量を調整したい場合は「100」を変更してください。

19行目の「}, 500);」部分でスクロールする時の速度を指定しています。
「500」の部分を好きな値に変更してください。

実装してみて

上記だけ実装できるので、とても簡単です。
「ページトップ」ボタンの配置やデザインはカスタマイズ可能です。
今回の表示方法はフェードですが、スライドなどのアニメーション表示もできます。
サイトに合わせて、デザインや表示方法を変えて実装してみてください。

特にシンプルなデザインのサイトには動きが生まれ、
いいアクセントになる有効なスクリプトです。

また今回のスクリプトは汎用性が高く、
スクロールするとヘッダーを固定表示するカスタマイズも可能です。
ぜひ試してみてください。

参考リンク

下記サイトは参考にしたサイトになります。
表示方法の別パターンの説明もあるので、詳しく知りたい方はどうぞ。

http://www.webopixel.net/javascript/538.html
http://www.nxworld.net/tips/page-top-appears-scroll.html

  • このエントリーをはてなブックマークに追加
この記事は木村が監修しました。

プラカンが目指す3つの顧客満足

  1. ホームページのできあがりに
    満足していただく

  2. 仕事の進め方に
    満足していただく

  3. サポート・フォーローに
    満足していただく

詳しくはホームページ企画・設計をご覧ください

ホームページ企画・設計

ホームページに関するご要望がございましたら、お気軽にご相談ください。

全国各地のホームページ制作に対応

プラカンは大阪本社、東京事務所を拠点に首都圏、関西圏はもちろん、全国のお客様のホームページ作りのお手伝いをさせていただきたいと考えております。オンラインでの無料相談にも対応しております。ぜひ一度ご相談ください。

お問い合わせ

お電話でのお問い合わせ