質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

1702閲覧

jquery each を使っても同時に処理が行われてしまいます

tetoro

総合スコア16

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/12/04 12:29

編集2019/12/04 13:02

jqueryを使って、スクロールされたら、要素を表示させようと思い、eachを使ったのですが、最初の要素が現れた時に、同時にすべての要素が一緒に表示されてしまいます。
それぞれの高さにスクロールされた時に、別々に表示したいのですが、どこのコードが間違っているのでしょうか?

HTML

1<section class="elm"> 2<div class="overlay"></div> 3<div class="titleLine"></div> 4</section> 5<section class="elm"> 6<div class="overlay"></div> 7<div class="titleLine"></div> 8</section> 9<section class="elm"> 10<div class="overlay"></div> 11<div class="titleLine"></div> 12</section> 13<section class="elm"> 14<div class="overlay"></div> 15<div class="titleLine"></div> 16</section> 17

CSS

1.overlay{ 2 opacity: 0; 3 transition: 1.5s; 4} 5.overlay.fadeOn{ 6 opacity: 1; 7} 8.titleLine{ 9 opacity: 0; 10} 11.titleLine.fadeOn{ 12 opacity: 1; 13}

jquery

1$(window).on('scroll',function (){ 2 var scroll = $(window).scrollTop(); 3 var windowHeight = $(window).height(); 4 5 $('.elm').each(function(){ 6 var elmPos = $(this).offset().top; 7 if (scroll > elmPos - windowHeight + windowHeight/3){ 8 9 var elmWhatOverlay = $('.overlay'); 10 var elmWhatTitleLine = $('.titleLine'); 11 12 elmWhatOverlay 13 .add(elmWhatTitleLine) 14 .addClass('fadeOn'); 15 16 } else { 17 // $(this).removeClass('fadeOn'); 18 } 19 } 20 }); 21});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2019/12/04 12:41

「elmWhatOverlay」など定義されていない変数があります。なるべく省略せずに、問題が再現できるコードを提示されたほうが回答につながります。
kei344

2019/12/04 12:52

.overlayや.titleLineがHTML上に有りませんよ。
guest

回答1

0

js

1 var elmWhatOverlay = $('.overlay',this); 2 var elmWhatTitleLine = $('.titleLine',this);

投稿2019/12/04 13:07

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tetoro

2019/12/05 02:36

何も動作がしませんでした。コンソールの方も何も表示されません。
tetoro

2019/12/09 04:04

ご丁寧にありがとうございました! ちなみに、$('.overlay',this); のように、第二引数のthisはどういう処理になるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問