jQuery Web制作 コーディング

【jQuery】ページトップとページトップ以外の処理を書く方法

【jQuery】ページトップとページトップ以外の処理を書く方法
ページトップではページトップに戻るボタンは表示させたくないけど、スクロール始めたら表示させたい時はどうすればいい?

今回はページトップボタンを例に解説しますが、ページトップでの処理とページトップ以外(スクロールした時)の処理について解説します。

つまり表示非表示以外にも使えるので、覚えておくと便利かと思います。

効率よくコーディングしたい人はこちら

jQueryでページトップとそれ以外の処理を書く方法

今回はjQueryを使うので、jQuery本体の読み込みを忘れないようにしましょう。

jQueryを使ったことがない人はこちらの記事を参照下さい。

【初めて使う人向け】jQuery本体を読み込む方法

 

早速ですが、今回のポイントとなるjQueryの基本となるコードを見てみます。

$(function () {
  $(window).scroll(function () {
    if ($(this).scrollTop() > 0) {
      // ページトップ以外の処理
    } else {
      // ページトップの処理
    }
  });
});

今回の、

  • ページトップではページトップに戻るボタンを非表示
  • スクロール開始したらページトップに戻るボタンを表示

の場合は以下のようになります。

$(function () {
  $(window).scroll(function () {
    if ($(this).scrollTop() > 0) {
      // ページトップ以外の処理
      $(".js-page-top").fadeIn(400);
    } else {
      // ページトップの処理
      $(".js-page-top").fadeOut(400);
    }
  });
});

.js-page-topはボタンのclass名で、ページトップ以外ではfadeIn(400)でゆっくり表示、ページトップではfadeOut(400)でゆっくり非表示にします。

400という数字はアニメーションのスピードで、大きくするほどゆっくりになります。

また、ページを開いた時点ではボタンは非表示にしておくので、CSSで以下のようにボタンを非表示にします。

/* 最初はページトップボタン非表示 */
.page-top {
  display: none;
}

.page-topもボタンのclass名です。

こちらがデモになります。

See the Pen
ページトップとそれ以外の処理
by junpei (@junpei-sugiyama)
on CodePen.

最初はボタン非表示、スクロール開始したらボタン表示、ページトップに戻ったらボタン非表示、となります。

 

ある程度スクロールしてから処理する場合

先ほどの例ではほんの少しでもスクロールしたら処理されました。

それはscrollTop() > 0が0になっているからで、例えばここの数値を200にしたら200pxスクロールしたら処理となります。

また、ページトップに戻る時はページトップから200pxより上になったら非表示になります。

こちらがデモになります。

See the Pen
ページトップとそれ以外の処理(少しスクロールしてから)
by junpei (@junpei-sugiyama)
on CodePen.

以上になります。

 

コーディング案件の単価と作業効率を上げる!

Brainランキング1位獲得 & 3日で500部突破

クチコミ約280件(平均スコア

今だけ!5大特典あり🎁

-jQuery, Web制作, コーディング