JavaScript

ファーストビュー内にあるスクロール発火のJavaScript要素を、スクロール無しで発火させる

ファーストビューで表示されている範囲にある、フェードインだったりフェードアップだったりのJavaScript(jQuery)で表示されるスクロールアニメーション要素。ありますよね。

それが、ちょっとでもスクロールしないと動かない(表示されない)ときの解決法です。

ファーストビュー内にあるスクロール発火のJavaScript要素を、スクロール無しで発火させる

つまり、ちょっとでもスクロールしないと、ファーストビュー範囲内の要素が表示されず、まっしろけっけになってしまうとき…。

↓こんな感じ。ファーストビュー内にあるはずのボックスが、ちょっとでもスクロールしないとフェードインしてきません。

See the Pen
下からフェードインするコンテンツ①
by tom k (@tom-k-the-encoder)
on CodePen.

しかし!以下の1文を書くとあら不思議!

jQuery(window).scroll();

 

ファーストビューのJavaScriptアニメーション要素が、スクロールせずとも画面読み込み後に発火します!

See the Pen
下からフェードインするコンテンツ②
by tom k (@tom-k-the-encoder)
on CodePen.

$(function() {
  $(window).scroll(function() {
    
    var scroll = $(window).scrollTop();
    var windowHeight = $(window).height();

    $('.fadein').each(function() {
      var elemPos = $(this).offset().top;

      if (scroll > elemPos - windowHeight + 100) {
        $(this).css({
          'opacity': '1',
          'transform': 'translateY(0)'
        });
      }
    });
  });

  jQuery(window).scroll();  /*ここに書く!!*/

});

 

記述する場所に注意!

まとめ:真っ白なファーストビューにはしたくない

たまに、JSが発火してなくて真っ白なファーストビューに出会うときがある。

そんなダサい動きの画面にはしたくないですよね…!

ファーストビューも頑張れるサイトにしていきましょう!