LoginSignup
0
0

More than 3 years have passed since last update.

【JavaScript】特定のスクロール量を基準にする

Posted at

開始タグ

「スクロールしたらヘッダーをあれこれしたい」的なことは日々増えている気がするのでメモ。

方法

例えば、
・スクロールしたらヘッダーの背景を白色にしたい
・ヘッダーの文字サイズを大きくしたい

みたいなCSSで解決できそうなものであれば
・特定のスクロール量を基準にクラス名をつけ外しさせる
方法で対処できます。

common.js
$(window).on("load resize scroll", function() {
    var body = $("body");
    var browseWid = $(window).width(); //ブラウザの横幅取得
    var widPc = browseWid > breakpoint; //PC表示のとき
    var widSp = browseWid <= breakpoint; //SP表示のとき

    var amount = 250; //スクロール量(px)
    var scrollPoint = $(this).scrollTop(); //スクロールした量
    var scrollStartPc = "js-scroll_start_pc"; //PC用
    var scrollStartSp = "js-scroll_start_sp"; //スマホ用

    if (widPc) {
        body.removeClass(scrollStartSp);
        if (scrollPoint > amount) {
            body.addClass(scrollStartPc);
        } else if (scrollPoint == 0) {
            body.removeClass(scrollStartPc);
        }
    } else if (widSp) {
        body.removeClass(scrollStartPc);
        if (scrollPoint > amount) {
            body.addClass(scrollStartSp);
        } else if (scrollPoint == 0) {
            body.removeClass(scrollStartSp);
        }
    }
});

あとは、PCの場合なら「.js-scroll_start_pc」を頭に書いて、各CSSを書いてあげればOK。

閉じタグ

もっといい方法はある気がするけど、現状はこの状態。
今後改善方法を発見し次第取り入れていきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0