ロボット研究開発、ソフトウェア開発、コンテンツ制作配信

スクロールに追従する「トップへ戻るボタン」を作成する方法


こんにちは、koheiです。

今日は、久しぶりにjQueryネタです。
最近のWebサイトでよく見るスクロールに追従する「トップへ戻る」ボタンの作成方法をご紹介します。

スポンサーリンク

「トップへ戻る」ボタンの配置

まずは、htmlファイルもしくは、phpファイルに「トップへ戻る」ボタンを配置しましょう。
私はWordPressを使用しているので、footer.phpに記載しました。

【footer.php】

<div class="page-top">
    <img src="<?php echo get_template_directory_uri();?>/images/page_top.gif" alt="ページトップボタン">
</div>

ボタン全体をclass名“page-top”というdiv要素で囲みます。
ボタンは、page_top.gifという画像を配置してます。(別に文字列でも構いません。)

ボタンのCSS設定

次にCSSを以下のように設定します。

【style.css】

/* ページトップボタン */
.page-top {
  position: fixed;
  right: 10px;
  bottom: 10px;
  z-index: 99;
}

ポイントは、position:fixedを指定することです。
これで、ページがスクロールされても同じ場所に配置されます。
位置は、right,bottomなどで、ちょうどよい場所に配置してください。
z-indexは重なり順です。最前面に表示させるため、99を指定しています。

jQueryの実装

jQueryは以下のように実装します。

【my_script.js】
※WordPressのjQueryスクリプトでは、他のパッケージとの競合を防ぐ為、$マークをjQueryに書き換えています。

jQuery(function(){

  /* TOP-Pageボタン制御 */
  var topBtn = jQuery('.page-top');
  topBtn.hide();
  //スクロールが100に達したらボタン表示
  jQuery(window).scroll(function () {
      if (jQuery(this).scrollTop() > 100) {
          topBtn.fadeIn();
      } else {
          topBtn.fadeOut();
      }
  });
  //スクロールしてトップ
  topBtn.click(function () {
      jQuery('body,html').animate({
          scrollTop: 0
      }, 500);
      return false;
  });
}

5行目でまずは、TOPへ戻るボタンを非表示にしています。
7行目〜13行目は、スクロール量が100に到達したら、ボタンを表示させ、スクロール量が100より小さい場合は、非表示にしています。
15行目以降は、トップへ戻るボタンをクリックした時に、トップ位置まで移動させる処理です。
トップへ戻すスピードは、18行目の数値で調整します。(上記は、500msecを指定しています)

最後に

いかがでしょう?
縦長のサイトなどは、トップへ戻るボタンが追従してくれるととても便利ですよね。
ぜひ活用してみてください!!

それでは!

関連記事(一部広告含む)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


ページトップボタン