ストップウオッチを作ってみよう➃
ストップボタンが押されたらイベントを停止する
赤字が今回追記したコードです。
ストップウォッチ
0
解説
setIntervalは呼び出したときに「開始した繰り返し処理を識別する数値」を返しますが、これをintervalIDと呼びます。
この数値を保持し、そしてintervalIDを指定してclearIntervalを呼び出せば、その繰り返し処理を停止できます。
var displayElm = document.getElementsByClassName(‘display’)[0]; | HTMLのドキュメントからdisplayというクラスがついている要素を全て取得し、「0」で取得した配列の一番初めの要素を取り出す。それを変数displayElmに代入します。 |
var timer = null; | intervalIDの数値を入れておくための変数timerを用意します。 |
var startButton = document.getElementsByClassName(‘startButton’)[0]; | HTMLのドキュメントからstartButtonというクラスがついている要素を全て取得し、「0」で取得した配列の一番初めの要素を取り出す。それを変数startButtonに代入します。 |
startButton.addEventListener(‘click’, function(){~ | 取り出したstartButtonに対してクリックイベントのリスナを指示する |
displayElm.innerHTML = seconds; | 先に変数定義したdisplayElmからinnerHTMLを呼び出し、それを秒数の数字とするsecondsとさせ数字を変更します。 |
var seconds = 0; | 変数secondsを定義し、それを0とし、1秒ごとに加算されるようにする。 |
timer =setInterval(function(){ | 一定時間ごとに処理を繰り返す setIntervalを使います。第一引数の関数内容を、第二引数の時間間隔で何度も呼び出します。そして戻り値を変数timerに代入しておくことでintervalIDを持ち続けるようにします。 |
seconds++; | 1つずつ加算されるようにする。 |
},1000); | 第二引数はミリ秒単位なので、1000と指定して1秒ごとに呼び出されるように指示します。 |
var stopButton = document.getElementsByClassName(‘stopButton’)[0]; | HTMLのドキュメントからstoptButtonというクラスがついている要素を全て取得し、「0」で取得した配列の一番初めの要素を取り出す。それを変数stopButtonに代入します。 |
stopButton.addEventListener(‘click’, function(){ | 取り出したstopButtonに対してクリックイベントのリスナを指示する |
clearInterval(timer); | clearIntervalをtimerに適用する |
timer = null; | 停止したときにtimer変数に初期状態のnullを代入します。 |
この本から引用、参考にして学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが3,000円弱ならコスパよく、買っておいてよかったと満足してます。