wordpressです。
htmlで以下のようなブロックがあり、所々にdata-nameがあり、画像のurlが値に入っています。
そしてスクロールした時に、data-nameがあるところにスクロールが行き着いたら、そのdata-nameの値(画像url)を背景写真として切り替える、という風な挙動を書きたいです。
その上でjsでループ処理をしているのですが、ループ内でのdata-nameの扱い方がわからず困っています。
html
1///背景切り替え 2<section class="History_timeline_point trigger" data-name="<?php echo esc_url(get_template_directory_uri()); ?>/img/history0.jpg"> 3 <div class="year">アイテム1</div> 4</section> 5 6<section class="History_timeline_point"> 7 <div class="year">アイテム2</div> 8</section> 9 10///背景切り替え 11<section class="History_timeline_point trigger" data-name="<?php echo esc_url(get_template_directory_uri()); ?>/img/history0.jpg"> 12 <div class="year">アイテム3</div> 13</section> 14 15<section class="History_timeline_point"> 16 <div class="year">アイテム4</div> 17</section> 18
js
1 2 let trigger = $('.trigger'); 3 let backTrigger = new Array; 4 let backImg = new Array; 5 6 //背景セット 7 trigger.each(function(i){ 8 //それぞれトリガーの高さを入れる 9 backTrigger[i] = $(this).offset().top; 10 //それぞれのdata-name(背景画像)をセット 11 backImg[i] = $(this).dataset.name; 12 }); 13
上記jsコードの、eachを回すところで、
backImgにdata属性をそれぞれ配列にセットしたいのですが、
backImg[i] = $(this).dataset.name;
の部分ががエラーになります。
TypeError: undefined is not an object (evaluating '$(this).dataset.name')
ループ内ではどのようにdata-nameの値を指定できるのでしょうか?
ご教授よろしくお願い申し上げます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。