Kaori Aihara | Web & Graphic Designer

【jQuery】でスクロールでフェードインがうまくいかなかった原因

jQueryで、スクロールで要素がフェードインするエフェクトを付けた時のお話。
以前に作った時はうまくいったものの、今回同じ様にやろうとしたらうまくいきませんでした。
そのコードがこちら。

なつ記メモさんを参考にさせていただきました。ありがとうございます!)

HTMLは、スクロールで画面に入ったらフェードイン表示させたい要素に、クラス「scrollAnime」を付けます。

CSSはこちら。

 

スクロールすると、.scrollAnimeを付けた全部の要素が同時に発動する…

原因を探るため、それぞれの値を出力してみてみました。

すると…

wHeight(=$(window).height())が3000以上ある…おかしくない?

それにより、条件分岐している

の計算が全て負の値になってしまうため、結果が全てTrueになってしまい、
全ての要素にクラス「fadeInDown」が付いてしまっていました。

$(window).height()が正しく取れないとしたらなぜ?

前に作ったデータを見返して、同じ様に値を出力してみたところ、
$(window).height()の値は、1000くらいでした。
ということはやはりここが原因。
調べた結果、
<!DOCTYPE html>
が入っていないと、$(window).height()が正しく取れない、ということがわかりました!!
実は、今回のサイトはWordPressの自作テーマなのですが、
最初にテーマを作成する際に、最小限テーマをDLしまして、
そちらにDOCTYPEの宣言が入っておらず、気が付かないまま使っていました…

できた!

WordPressのheader.phpに<!DOCTYPE html>を追加したところ、

無事、できました!!

 

生JSでもそうなのかな?

とりあえず、表示域が取れてなさそうな時は、チェックしてみてください♪

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。