前提・実現したいこと
document.getElementsByClassNameで取得した要素の子要素を指定したい。
発生している問題・エラーメッセージ
子要素の指定の仕方が分からず動作しない。
HTML
下記のように文字をspanで囲っており、1文字ずつクラスの付与などをしたい。
<div class="letter"> <span>り</span> <span>ん</span> <span>ご</span> </div> <div class="letter"> <span>み</span> <span>か</span> <span>ん</span> </div>該当のソースコード(簡易記述)
複数あるlettrクラスに対して個別の処理がしたいので、for文で処理をします。
var letterElements = document.getElementsByClassName("letter");
for (var i=0; i < letterElements.length; i++) {
letterElements[i].children('span').each(function(i) { //ここで各letterの子要素であるspanを指定したい
//各spanに対してclassを付与するなどの処理をする
}
}
実際のコード
スクロールマジックで1文字ずつ文字を表示させようとしています。
下記の記述だと、全てのletterクラスを指定しているので、想定した動きになりません。
var letterElements = document.getElementsByClassName("letter");
for (var n=0; n < letterElements.length; n++) {
var scene = new ScrollMagic.Scene({
triggerElement: letterElements[n],
triggerHook:0.8,
offset:100,
reverse:false
})
scene.on("enter", function (event) {
$('.letter > span').each(function(i) { //ここでletterElements[n]の子要素のspanを指定したい
$(this).delay(20 * i).queue(function() {
$(this).addClass('visible').dequeue();
});
});
})
.addTo(controller);
}
回答2件
あなたの回答
tips
プレビュー