要素をふわっと出す、css3アニメーションで簡単エフェクト。

髪を切って、きのこになりました。秋です。

ページを読み込んだときに、コンテンツをふわっふわっと表示させたい。
最近よく見るあれをやってみます。

ふわっという動きはcss3のtransitionで時間を制御。
「effect-fade」と「effect-scroll」、2種類のcssアニメーションを用意してスクロールをトリガーにjsで切り替えます。

html

ふわっふわっと表示させたい要素に「effect-fade」というclassを付与します。

ブロックまるごとふわっとさせたい

<section class="effect-fade">
 <h1>タイトル1</h1>
 <p>説明文1</p>
</section>
<section class="effect-fade">
 <h1>タイトル2</h1>
 <p>説明文2</p>
</section>
<section class="effect-fade">
 <h1>タイトル3</h1>
 <p>説明文3</p>
</section>

エレメントひとつひとつをふわっとさせたい

<section>
 <h2 class="effect-fade">コンテンツのタイトル</h2>
 <div>
  <ul>
   <li class="effect-fade">コンテンツその1</li>
   <li class="effect-fade">コンテンツその2</li>
   <li class="effect-fade">コンテンツその3</li>
  </ul> 
</div>
</section>

css

2つのclassを準備します。

.effect-fade {
 opacity : 0;
 transform : translate(0, 45px);
 transition : all 300ms;
}
.effect-fade.effect-scroll {
 opacity : 1;
 transform : translate(0, 0);
}

「effect-fade」はコンテンツを見えないように透過させ、45px下に移動。transitionでアニメーションしています。これが初期表示です。「effect-scroll」は透過せずに元の位置で通常表示してます。

js(jQuery)

スクロールしたら、「effect-fade」というclassが付与された要素に「effect-scroll」というclassをjsで追加。

$(function(){
 $(window).scroll(function (){
    $('.effect-fade').each(function(){
        var elemPos = $(this).offset().top;
        var scroll = $(window).scrollTop();
        var windowHeight = $(window).height();
        if (scroll > elemPos - windowHeight){
            $(this).addClass('effect-scroll');
        }
    });
 });
});

参考サイト

参考にさせていただいたサイト。勉強になった!

海外のウェブサイトでよくみる「要素が画面内に入ったらふわっとフェードインするあれ」の実装方法

動きがあると、それだけでなんだかおしゃれ。

jQueryって便利。

追記:初期表示、ページを開いたときにもふわんとさせる

ページを開いたときにコンテンツが隠れた状態になるので、初期表示でもふわんとさせよう。とトリリンガルなPGさんがコードを書き足してくれました。あざす。

js

window.onload = function() {
  scroll_effect();

  $(window).scroll(function(){
   scroll_effect();
  });

  function scroll_effect(){
   $('.effect-fade').each(function(){
    var elemPos = $(this).offset().top;
    var scroll = $(window).scrollTop();
    var windowHeight = $(window).height();
    if (scroll > elemPos - windowHeight){
     $(this).addClass('effect-scroll');
    }
   });
  }
};

onloadで一度ふわっ。初期表示でふわっとさせ、スクロールしたときにもふわんとさせます。
scroll_effect(); は、ふわっふわっの処理を関数にして呼び出しています。

SHARE

  • *
  • *
  • *