この記事では、WEBページを閲覧する際にスクロール量に合わせてタイトルや画像などの要素をフェードインで表示させるサンプルコードを紹介します。
目次
コードサンプル
ここではhtml、css、javascriptのサンプルコードを紹介します。
HTML
ポイントはclassに「fade」が指定されていること。
cssで予め透明化などのスタイルを定義しておきます。
<div>
  <h2 class="fade">タイトル</h2>
  <div class="fade"><img src="img/400-300.jpg" alt="画像" /></div>
  <p class="fade">テキスト</p>
</div>CSS
ここでは2つのクラス名が定義されていますが、フェードイン前と後で最低限必要になるスタイルです。
.fade {
  transition: all 2000ms;
  opacity: 0;
  visibility: hidden;
  transform: translate(0px, 50px);
}
.fadein {
  opacity: 1;
  visibility: visible;
  transform: translate(0px, 0px);
} 
javascript
仕様は次のとおりです。
- スクロール時に実行される処理Aを作る
 - Aの処理内で、class「fade」が付与されている「要素nすべて」に対しての処理を作る
 - ブラウザのサイズ(高さ)を取得する
 - 要素nの位置(Y軸)を取得する
 - 要素nの位置が(スクロール量+ブラウザの高さ)より小さければ、class「fadein」を要素nに追加で付与する
 
 <script>
(window.onload = function() {
  // フェードイン処理
  jQuery(window).scroll(function (){
    jQuery(".fade").each(function(){
      var winheight = jQuery(window).height();
      var posi = jQuery(this).offset().top;
      var scroll = jQuery(window).scrollTop();
      if (scroll + winheight > posi){
        jQuery(this).addClass("fadein");
      } else {
        // スクロールで画面上部に戻った際に要素を非表示にしたい場合は、下記の行のコメントを外し有効にしてください。
        //jQuery(this).removeClass("fadein");
      }
    });
   });
})(); 
</script>以上がスクロール量に応じた要素のフェードイン表示処理のサンプルコードになります。
ざっくりしてますが、参考になれば幸いです。


			
			
			
			
			
			
			
			
コメント