Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8945

JavaScriptでストップウォッチを作ってみた。

$
0
0

HMTL CSS JavaScriptで簡単なストップウォッチを作ってみた。

主な仕様

  1. 0.1秒単位でカウントアップ

  2. 一時停止機能あり

  3. リセットボタンでカウントを初期化

本当に簡単なものになっています。

HTML & CSS

まずはHTMLとCSSでストップウォッチの形を作ります。

HTML
<!DOCTYPE html><htmllang="ja"><head><metacharset="UTF-8"><title>ストップウォッチ</title><linkrel="stylesheet"href="main.css"><script src="jquery-3.5.1.min.js"></script></head><body><h3>ストップウォッチ</h3><divclass="time_count"><pid="hour">0</p><p>:</p><pid="minute">0</p><p>:</p><pid="second">0</p><p>:</p><pid="m_second">0</p></div><buttonclass="button"id="start"onclick="count_start()">スタート</button><buttonclass="button"id="stop">ストップ</button><buttonclass="button"id="reset">リセット</button><script type="text/javascript"src="main.js"charset="UTF-8"></script></body></html>

今回はjQueryを使います。
time_countクラスでタイマー部分を作成し。buttonで各種ボタンを配置します。

CSS
.time_count{display:flex;}.time_countp{margin-left:10px;margin-right:10px;font-size:25px;font-weight:bold;}.button{width:100px;height:50px;border:1pxsolid;font-weight:bolder;}

CSSは簡潔に、ボタンの大きさやフォントの大きさを設定。
time_countクラスをflexにして、横並びにタイマーらしく見せています。

JavaScriptで動きをつける

JavaScript
functionTimeCount(){letms=$("#m_second").text();letsec=$("#second").text();letmin=$("#minute").text();lethour=$("#hour").text();ms++;$("#m_second").text(ms);if($("#m_second").text()==10){sec++;$("#m_second").text(0);$("#second").text(sec);}if($("#second").text()==60){min++;$("#second").text(0);$("#minute").text(min);}if($("#second").text()==60){min++;$("#second").text(0);$("#minute").text(min);}if($("#minute").text()==60){hour++;$("#minute").text(0);$("#hour").text(hour);}}letstart=0;lettime_count=null;$(document).ready(function(){$("#start").click(function(){start+=1if(start==1){time_count=setInterval(TimeCount,100);};});$("#stop").click(function(){clearInterval(time_count);start=0;});$("#reset").click(function(){clearInterval(time_count);start=0;$("#hour").text(0);$("#minute").text(0);$("#second").text(0);$("#m_second").text(0);});});
  • TimeCount関数でタイマーの動きを制御します。

    • msが1つずつ増加していく。
    • msが10になったらs (秒)が1増加。
    • sが60になったらm (分)が1増加。
    • mが60になったらh (時)が1増加。
    • それぞれ、位が上がったら0に戻す(msが10になった時、sを+1してmsは0にする)。
    • 関数が呼び出された時は、タイマーの続きから始められるように初期値を代入する。
  • start変数を置いて、startボタンが押されたら1ずつ追加。

    • start変数が1の時(startボタンが1回押された時)にタイマースタート。 
    • この変数がないと、連続してstartボタンが押せてしまう。
  • setInterval関数で100msずつカウントする。

  • time_count変数にsetIntervalを代入してclearできるようにする。

    • time_count変数をどの関数からでも操作できるように、Global変数(関数の外におく)にする。
  • ストップボタンで一時停止する

    • clearIntervalだけで初期化しないため、すぐにstartを押すと、一時停止したところから再開可能。
  • リセットボタンでタイマーを止めた後、全てを初期化する

  • ストップボタンやリセットボタンが押された時は、start変数を0にして、再度スタートできるようにしておく。

完成

スクリーンショット 2021-03-03 7.04.41.png
スクリーンショット 2021-03-03 7.04.25.png


Viewing all articles
Browse latest Browse all 8945

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>