サイトを閲覧していると、一気にぺージ内の上部に移動させたい!というとき、ありますよね。
そんなとき、ページトップへ戻るボタンがあると非常に便利です。
今回は、基本的な「ページトップへ戻る」ボタンの作り方について、解説していきます。
ページトップへ戻るボタンのサンプル
See the Pen
Untitled by 田村翔 (@geqvzwon-the-typescripter)
on CodePen.
まずはサンプルを見て、実際にスクロールしてみてください。
ある程度スクロールするとボタンが表示されます。
ボタンをクリックするとページトップに移動し、ボタンは非表示になる仕様です。
HTML
<!-- ページトップへ戻るボタン --> <div class="page-top"> ページトップへ戻る </div>
CSS
/* ページトップへ戻るボタン */ .page-top { display: none;/* 非表示 */ position: fixed;/* ページ右下に固定 */ right: 20px; bottom: 20px; padding: 20px 10px; border-radius: 8px; background-color: red; color: #fff; cursor: pointer;/* カーソルをポインターに */ } /* activeクラスが付与されたとき */ .page-top.active { display: block; } /* ホバーしたとき */ .page-top:hover { opacity: 0.8; transition: 0.3s; }
jQuery
jQueryでやることは主に3つです。
- 変数の宣言
- スクロールイベントの実装
- ページトップへ戻るボタンをクリックしたときの処理
変数の宣言
// 変数pagetopの宣言 var pagetop = $('.page-top');
$('.page-top')
は何回か使用するので、変数を宣言します。
変数の宣言をしておくと、.page-top
クラスの名前を変更することになった際、変更箇所が一か所で済みます。
スクロールイベントの実装
// スクロールイベント $(window).on('scroll', function() {//スクロールしたとき、 if ($(this).scrollTop() > 500) { //スクロール量が500px以上なら、 pagetop.addClass('active'); //activeクラスを付与し、 } else { //500px未満なら、 pagetop.removeClass('active'); //activeクラスを外します。 } });
スクロールしたときの処理を実装します。
コードの説明は上記コメントアウトをご覧ください。
$(this).scrollTop()
で、ページ上部から現在のスクロール地点までの距離を取得できます。
console.log()
を使って、実際に確かめてみると良いでしょう。
ページトップへ戻るボタンをクリックしたときの処理
// ページトップへ戻るボタンをクリックしたとき pagetop.on('click', function() { $('html, body').animate ( { scrollTop : 0 }, 400, 'swing', ); return false; });
ページトップへ戻るボタンをクリックしたら、ページトップへスムースにスクロールする処理を行います。
詳細は、スムーススクロールとは?CSS, jQueryで実装法を解説!をご覧ください。
まとめ
以上、「ページトップへ戻る」ボタンの作り方について解説しました。
ページトップへ戻るボタンはUX評価を上げる要因にもなるので、すぐ実装できるようにしましょう。
最後までお読みいただきありがとうございました!