jquery break/animate warping text paragraph example <参照元>
こちらを参考に同様のアニメーションが機能したページを作りたいのですが、
<p id="weirdtext">テスト<br>文章</p>このように、あるいは\nなどで 文章に改行を効かせる事は可能なのでしょうか? jsに関する知識がまだ至らず、打ち間違いなどがないようコードはほぼそのままで使っております。Javascript
1$(document).ready(function(){ 2 setup(); 3}); 4 5function setup(){ 6 var $passage = $('#weirdtext'); 7 //get the inner HTML of the #weirdtext paragraph 8 var rawtxt = $passage.html(); 9 10 //Get the length of the string for use in loop 11 var len = rawtxt.length; 12 13 //empty string used to store final text that includes spans 14 var newtext = ''; 15 16 //For each character inside #weirdtext string (this is why we got length) 17 for(var i = 0; i < len; i ++){ 18 19 //get a random num between 1 and 5 20 var rng = Math.floor(Math.random() * 5) + 1; 21 22 //get the i-th character from the string 23 var currentchar = rawtxt.charAt(i); 24 if(currentchar == ' '){ 25 //if it's a space, add an empty .space span 26 var newchar = '<span class="space"></span>'; 27 } 28 else{ 29 //otherwise, wrap it with a span, and give it class effectN, where N is a random int as before 30 var newchar = '<span class="effect' + rng + '">' + currentchar + '</span>'; 31 } 32 //add this new "char" (actually it's a char with spans wrapping it) to the empty string 33 newtext = newtext + newchar; 34 } 35 36 //最終行② replace #weirdtext paragraphs inner HTML with the newly created string 37 $passage.html(newtext); 38 39//個人で追加してみたもの① 40var str = $passage.html(newtext).val(); 41$('#weirdtext').html(str.replace(/\r?\n/g, '<br>')); 42 43}
最終的に$passage.htmlというものに書き出されているから<br>や\nが反応せず、そのまま文字列として出てしまっているのかと思い、改行を置換するというものを調べてやってはみたのですが、
入れるところが悪いのか、理解が至っていないからか、無効でした。
現状
最初の一文の下に追加することで<br>を改行として認識してくれました。
正しこの場合は適用したかったフォントが伸び縮みするという効果を打ち消してしまうようでした。
一度自己解決したと記事を上げさせて頂いたのですが、
コメントしてくださった方法含め、「効果を持続したまま改行を適用する」には
まだ至っていない為、もう少し考えてみようと思います。
var $passage = $('#weirdtext'); //追加したもの $( '#weirdtext' ).html( $('<p>').text( text ).html().replace( '。', '。<br>' ) );
こうしたらいいというものが他ありましたら是非教えて頂ければ幸いです。
回答3件
あなたの回答
tips
プレビュー