タイトルにもあるように、Wordpressへのスクロールフェードイン実装において、全て同時に動いてしまう現象を治したいのが、今回の悩みです。
自作でWordpressテーマを作成しています。
ライブラリを使用したスライダーや、JavaScriptでハンバーガーメニューを作成したりして、異常なく動作しています。
この度、スクロールによるフェードインを実装しようとしたところ、うまく動かないことに気がつきました。
実装しようとしているのは、下記のようなサイトのもので、下からフワッとフェードインするようなイメージです。
参考: https://imasashi.net/demo/fadein/
解説ページ: https://imasashi.net/element-fadein.html
フェードインさせたいコンテンツにclassを入れてみたのですが、どうやらスクロールで全て同時に動いてしまっているようなのです。
現象としては、下記の質問者様によく似ているのですが、試しに、全てコピペしてみたところ挙動に改善は見られませんでした。
過去の質問: https://teratail.com/questions/137528
何か、スクリプトの記述の問題、jsファイルの読み込み順序の問題など、別な問題点があるのか…と予想してみたのですが、どうにもならなくてこちらで質問させていただきました。
心当たりがある方や、解決策をお持ちの方、ご教示いただけますと幸いです。
よろしくお願いいたします。
以下、コードは上記サイトからの引用です。
HTML
1<div> 2 <section class="fadein"> 3 <h2>情報設計</h2> 4 <p>何かしらの説明文。何かしらの説明文。何かしらの説明文。</p> 5 </section> 6 <section class="fadein"> 7 <h2>サイトマップ</h2> 8 <p>何かしらの説明文。何かしらの説明文。何かしらの説明文。</p> 9 </section> 10 <section class="fadein"> 11 <h2>ワイヤーフレーム</h2> 12 <p>何かしらの説明文。何かしらの説明文。何かしらの説明文。</p> 13 </section> 14</div>
CSS
1/* 画面外にいる状態 */ 2.fadein { 3 opacity : 0.1; 4 transform : translate(0, 50px); 5 transition : all 500ms; 6} 7 8/* 画面内に入った状態 */ 9.fadein.scrollin { 10 opacity : 1; 11 transform : translate(0, 0); 12}
JS
1$(function(){ 2 $(window).scroll(function (){ 3 $('.fadein').each(function(){ 4 var elemPos = $(this).offset().top; 5 var scroll = $(window).scrollTop(); 6 var windowHeight = $(window).height(); 7 if (scroll > elemPos - windowHeight + 200){ 8 $(this).addClass('scrollin'); 9 } 10 }); 11 }); 12});
回答2件
あなたの回答
tips
プレビュー