Javascriptを使って簡単なストップウオッチを作る➃

Javascriptを使って簡単なストップウオッチを作る

ストップウオッチを作ってみよう➃

ストップボタンが押されたらイベントを停止する

赤字が今回追記したコードです。

ストップウォッチ

0
JavaScript var displayElm = document.getElementsByClassName(‘display’)[0];
var timer = null;
var startButton = document.getElementsByClassName(‘startButton’)[0];
startButton.addEventListener(‘click’, function(){
displayElm.innerHTML = seconds;
var seconds = 0;
timer = setInterval(function(){
seconds++;
},1000);
});

var stopButton = document.getElementsByClassName(‘stopButton’)[0];
stopButton.addEventListener(‘click’, function(){
clearInterval(timer);
timer = null;
});

解説

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円弱ならコスパよく、買っておいてよかったと満足してます。


わからないことはプロフェッショナルから学ぶのが一番

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。