こんにちは。デザイナーの(鈴)です。
今回は「ページトップ」ボタンのちょっとしたスクリプトを紹介します。
一定量スクロールすると「ページトップ」ボタンが表示されるサイトがあります。
フェードやスライド表示することで、動きのあるサイトにしたい時や、
メインビジュアルが大きく、ファーストビューで「ページトップ」ボタンを
表示したくない場合にはとても便利なスクリプトです。
それでは実装方法を紹介していきます。
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