ふわっと出す、css3アニメーションで簡単エフェクト。
<head>に掲載
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="xxxxx.js"></script>
jQueryの書き方
$(function(){ $(window).scroll(function (){ $('.fadein').each(function(){ var targetElement = $(this).offset().top; var scroll = $(window).scrollTop(); var windowHeight = $(window).height(); if (scroll > targetElement - windowHeight + 200){ $(this).css('opacity','1'); $(this).css('transform','translateY(0)'); } }); }); });
順番にjQueryの中身を見ていくと、$(function(){}はDOMの読み込みが終わったら中の処理をするという意味で、$(window).scroll(function (){}はスクロール時にイベントを発動する意味になります。
以下の3行はスクロール時にイベントを発動するための位置情報になります。
- $(this).offset().topは、ターゲット要素の高さ
- $(window).scrollTop();は、スクロール位置(ページの一番上からディスプレイ上端)
- $(window).height();は、ウィンドウの高さ
そして、if (scroll > targetElement – windowHeight + 200){}で、要素をふわっと表示させたい位置を計算して条件で分岐。trueであれば、 $(this).css(‘opacity’,’1′);と$(this).css(‘transform’,’translateY(0)’);を実行させています。
ちなみに表示位置を変えたい場合は一番右の200という数字を変更してください。200はディスプレイ画面の下から200pxの位置ということになりますので、下から100pxの位置が良ければ100にしてください。
CSS
.fadein { opacity : 0; transform: translateY(20px); transition: all 1s; }
1秒間で20px下に移動する
HTML
<figure><img src="画像のURL" alt="" class="fadein"></figure>
引用:jQueryとCSSでスクロール時に画像を下からふわっと表示させる方法 + ネイティブ javascriptでの書き方も掲載!