前提・実現したいこと
jqueryで複数の文章を一文字ずつフェードインするような動きを実装したいです。
発生している問題・エラーメッセージ
現状のコードで複数のテキストに同じクラス名(fadein)を使用すると1つ目のテキストが読み込まれてしまいます。
テキスト2,テキスト3が「テキスト1」と読み込まれてしまいます。
複数のテキストに対応させる方法をご教示いただけますと幸いです。
よろしくお願いいたします。
該当のソースコード
html
1<p class="fadein">テキスト1</p> 2<p class="fadein">テキスト2</p> 3<p class="fadein">テキスト3</p>
css
1.fadein, 2.fadein span { 3 opacity: 0; 4}
jquery
1$(window).on('load', function () { 2 var text_wrap = '.fadein'; 3 var delay_speed = 60; 4 var fade_speed = 700; 5 var str; 6 $(text_wrap).css('opacity', '1'); 7 var firsttxt = $(text_wrap).html(); 8 str = firsttxt.replace(/<br>/g, '\n'); 9 $(text_wrap).html(''); 10 for (var i = 0; i < str.length; i++) { 11 $(text_wrap).append('<span class="text_span">' + str.substr(i, 1).replace(/\n/, "<br>") + '</span>'); 12 $(text_wrap).children('span:last-child').delay(delay_speed * i).animate({ opacity: '1' }, fade_speed); 13 } 14 setTimeout(function () { $(text_wrap).html(firsttxt) }, str.length * delay_speed + fade_speed); 15});
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/15 05:30