ストップウオッチを作ってみよう➇
時刻を入れる
赤字が今回追記したコードです。
ストップウォッチ
0
解説
function addMessage(message){ | リファクタリングして新たにaddMessageという関数を作ります。 |
var messageElm = document.createElement(‘div’); | 指定した名前のHTMLタグを作成できるcreateElementにて’div’を作り、それを変数messageElmに代入します。 |
var now = new Date(); | 初期化したものを変数nowに代入します。 |
messageElm.innerText = now.getHours() + ‘時’ + now.getMinutes() + ‘分’ + now.getSeconds() + ‘秒’ + ‘ ‘ + message; | 現在時刻を表します。 |
messageElm.classList = [‘message’]; | クラスとしてmessageを追加。したがって新規作成されるdivタグにはclass=”message”となります。先に作成したCSSの内容が反映され、アンダーラインが入ります。 |
messageElm.innerText = message; | 先に作った変数messageElmにinnerTextを使い、それをmessageとし、引数もmessageとします。 |
logElm.appendChild(messageElm)} | appendChildを使って、作成したタグをlogElmの子要素としてmessageElm(ここではdiv)要素をブラウザに表します。 |
var displayElm = document.getElementsByClassName(‘display’)[0]; | HTMLのドキュメントからdisplayというクラスがついている要素を全て取得し、「0」で取得した配列の一番初めの要素を取り出す。それを変数displayElmに代入します。 |
var logElm = document.querySelector(‘.log’); | querySelectorは引数に与えたCSSセレクタに合致する画面上のHTMLタグ要素を一つ取得します。 |
var timer = null; | intervalIDの数値を入れておくための変数timerを用意します。 |
var startButton = document.getElementsByClassName(‘startButton’)[0]; | HTMLのドキュメントからstartButtonというクラスがついている要素を全て取得し、「0」で取得した配列の一番初めの要素を取り出す。それを変数startButtonに代入します。 |
startButton.addEventListener(‘click’, function(){~ | 取り出したstartButtonに対してクリックイベントのリスナを指示する |
if(timer === null){~ } | もしtimer変数がnullならば、startButtonのクリックが動作する |
displayElm.innerHTML = seconds; | 先に変数定義したdisplayElmからinnerHTMLを呼び出し、それを秒数の数字とするsecondsとさせ数字を変更します。 |
var seconds = 0; | 変数secondsを定義し、それを0とし、1秒ごとに加算されるようにする。 |
timer =setInterval(function(){ | 一定時間ごとに処理を繰り返す setIntervalを使います。第一引数の関数内容を、第二引数の時間間隔で何度も呼び出します。そして戻り値を変数timerに代入しておくことでintervalIDを持ち続けるようにします。 |
seconds++; | 1つずつ加算されるようにする。 |
},1000); | 第二引数はミリ秒単位なので、1000と指定して1秒ごとに呼び出されるように指示します。 |
addMessage(‘start!’); } }); | 関数addMessageを作動させstart!を表示させる。 |
var stopButton = document.getElementsByClassName(‘stopButton’)[0]; | HTMLのドキュメントからstoptButtonというクラスがついている要素を全て取得し、「0」で取得した配列の一番初めの要素を取り出す。それを変数stopButtonに代入します。 |
stopButton.addEventListener(‘click’, function(){ | 取り出したstopButtonに対してクリックイベントのリスナを指示する |
if(timer !== null){~ } | もしtimer変数がnullでないならば、stopButtonのクリックが動作する。 |
clearInterval(timer); | clearIntervalをtimerに適用する |
timer = null; | 停止したときにtimer変数に初期状態のnullを代入します。 |
addMessage(‘stop!’);
} }); | 関数addMessageを作動させstop!を表示させる。 |
お疲れ様でした。今回はここまでにしましょう。ゆっくりマイペースで継続しましょう。
この本から引用、参考にして学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが3,000円弱ならコスパよく、買っておいてよかったと満足してます。