JavaScriptのcodility'sホームページでタイピング効果を模倣しようとしています。既にsetInterval()を使用してタイピングと削除の効果を達成しました 。JavaScriptでsetIntervalを一時停止して再開する
ここではそのjsfiddleです:CSSの私の周り私の頭を取得することはできませんどのような
#cursor{
-webkit-animation: 1s blink step-end infinite;
-moz-animation: 1s blink step-end infinite;
animation: 1s blink step-end infinite;
}
@keyframes blink {
from, to {
opacity:0;
}
50% {
opacity: 1;
}
}
@-moz-keyframes blink {
from, to {
opacity:0;
}
50% {
opacity:1;
}
}
@-webkit-keyframes blink {
from, to {
opacity:0;
}
50% {
opacity:1;
}
}
がどのように私でしある https://jsfiddle.net/yzfb8zow/
var span=document.getElementById("content");
var strings=["hello world","how r u??"];
var index=0; //get string in the strings array
var chIndex=0; //get char in string
var type=true;
setInterval(function(){
if(index===strings.length)
index=0;
if(type){
typeIt();
}
else
deleteIt();
},200);
// type the string
function typeIt(){
if(chIndex<strings[index].length)
span.innerHTML=strings[index].substring(0,chIndex++);
else
type=false;
}
//delete the string
function deleteIt(){
if(chIndex===0){
index++;
type=true;
}
else
span.innerHTML=strings[index].substring(0,chIndex--);
}
HTML
<span id="content"></span>
<span id="cursor">|</span>
文字列の変更の開始時にsetInterval関数を一時停止し、最後にgetはっきりと点滅するカーソル。
私は他の回答Pause and resume setIntervalとHow do I stop a window.setInterval in javascript?を探しましたが、私はこの文脈でどのように使用するのか理解できません。
また、コードを改善する方法を教えていただければ幸いです。
これは完全にあなたの質問に答えられないかもしれないが、私はそれが正しい道にあなたを設定します願っています。あなたがjavascriptに慣れていない場合、間隔を設定することは特に奇妙です。 setInterval関数を定義するときは、変数に代入する必要があります。その変数には、clearIntervalで使用できるuniqueIDが含まれます。間隔を止めて何度もやり直す必要がある場合は、その変数を渡す必要がある場合は、複数のタイマーを作成して不思議な振る舞いをします。 –
JQueryプラグインを使用することができれば素晴らしいプラグインがありますが、独自のプラグインを作成するとうまく動作します。 http://www.mattboldt.com/demos/typed-js/ –