一定時間ごとに処理を繰り返す


$setInterval( listener, delay )$

setIntervalは、一定の遅延間隔ごとに指定された関数などを実行します。 setIntervalは、インターバルタイマーを一意に識別するインターバルIDを返します。 返されたインターバルIDを使うことで対象のインターバルタイマーを削除することができます。

setInterval() - Web API | MDN

$clearInterval( intervalID )$

clearIntervalは、指定されたインターバルIDに対応したインターバルタイマーを削除します。

clearInterval() - Web API | MDN

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>Web演習2 - サンプル9</title>
</head>
<body>
  <h1>タイマー関数の利用</h1>
  <h2>一定時間間隔の繰り返し</h2>
  <p id="txt_interval">color name list</p>
  
  <button type="button" id="btn_interval_start">start</button>
  <button type="button" id="btn_interval_stop">stop</button>

  <script src="sample09_1.js"></script>
</body>
</html>
{

  //element
  const doc = document;
  const intervalText = doc.querySelector('#txt_interval');
  const intervalStartButton = doc.querySelector('#btn_interval_start');
  const intervalStopButton = doc.querySelector('#btn_interval_stop');
  
  // setting
  const colors = [ 'red', 'green', 'blue', 'tomato', 'lightgreen', 'skyblue' ];
  let intervalId = null;
  let intervalCount = 0;
  const deley = 1000;
  

  // #btn_interval_start click event
  intervalStartButton.addEventListener('click', ()=>{
	  if(!intervalId) {
      intervalId = setInterval(()=>{
        let index = intervalCount % colors.length;
				intervalText.innerText = colors[index];
        intervalText.style.color = colors[index];
        intervalCount++;
      }, deley);
    }
  });

  // #btn_interval_stop click event
  intervalStopButton.addEventListener('click', ()=>{
    if(intervalId){
      clearInterval(intervalId);
      intervalId = null;
    }
  });

}

時間経過後に処理を実行