###ヘディングのテキスト
スマートフォンゲームのチュートリアルなどでよくある、キャラクターがセリフを喋っているように文字が1つずつ表示され、段落の表示が終わったら右下に矢印が表示され、次の段落文章が表示されるプログラムを作りたく思っています。
先日こちらでご指導いただき、現在以下の状態で
①文章を1文字ずつ表示する
②段落の文章が表示されたら右下に矢印が出る
までは希望通り動いております。
今回は、以下のサンプルで「セリフ3(最終段落)」が表示され終わった時のみ、<a href="">で別のページへ遷移できるようにしたく思います。(セリフ1の時はセリフ2へ、セリフ2の時はセリフ3へ)
よろしくご指導のほどお願い致します。
html
1 <section id="contents"> 2 3 <div id="serif_box"> 4 <p id="serif" data-text="["セリフ1","セリフ2","セリフ3"]" data-textindex="-1"> 5 </p> 6 <img id="next_tuto" class="serif_bt" src="/img/serif_bt.png" hidden> 7 </div> 8 9 </section>
javascript
1'use strict'; 2document.getElementById('next_tuto').addEventListener('click', { 3 textElement: document.getElementById('serif'), 4 viewText: function viewText () { 5 setTimeout(function handleTimeout (element) { 6 var textList = JSON.parse(element.getAttribute('data-text')), 7 listIndex = +element.getAttribute('data-textindex'), 8 text = element.textContent, 9 originalText = textList[listIndex], 10 textLen = text.length + 1; 11 12 element.textContent = originalText.slice(0, textLen); 13 14 if (originalText.length > textLen) { 15 setTimeout(handleTimeout, 18, element); 16 } else { 17 this.document.getElementById('next_tuto').hidden = false; 18 } 19 }, 200, this.textElement); 20 }, 21 handleEvent: function handleClick (event) { 22 var element = this.textElement, 23 textList = JSON.parse(element.getAttribute('data-text')); 24 25 element.setAttribute('data-textindex', (+element.getAttribute('data-textindex') + 1) % textList.length); 26 element.textContent = ''; 27 this.viewText(); 28 } 29}, false); 30document.getElementById('next_tuto').click();
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/03 05:40