サイトを閲覧していると、一気にぺージ内の上部に移動させたい!というとき、ありますよね。
そんなとき、ページトップへ戻るボタンがあると非常に便利です。
今回は、基本的な「ページトップへ戻る」ボタンの作り方について、解説していきます。

ページトップへ戻るボタンのサンプル

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評価を上げる要因にもなるので、すぐ実装できるようにしましょう。

最後までお読みいただきありがとうございました!