[jQuery] スクロールに応じてフェードイン表示

サイト構築

jQueryを使うならこうかな。
fade-in というクラスを与えたタグをスクロールに応じてフェードイン表示します。

// HTML読込終了に伴う処理
jQuery(document).ready(function() {
    $('.fade-in').css({'opacity':'0'});
});
// スクロール処理
jQuery(window).scroll(function (){
    $('.fade-in').each(function(){
        var top = $(this).offset().top;
        var scroll = $(window).scrollTop();
        var height = $(window).height();
        if (scroll > top - height){
            $(this).animate({'opacity':'1'}, 1000);
        }
    });
});

起動時に透過状態に初期化して、スクロールに応じて透過状態を解除。
他の方のサンプルを見ると、予めクラスを用意しておいてjQueryで付加しているパターンを使うことが多いのですが、その場合、初期状態が透過状態になる。JavaScriptが動かなかったらということを考えると、初期状態もJavaScriptでつくるのほうが私は無難だと思う

結果がすべてですから、どんなやり方でもユーザーに求められているものが正しく与えられられていれば問題ありません。作り手は、きちんと動作を理解した上で作ることがなにより大切と思います。

タイトルとURLをコピーしました