「開始」、「停止」、「リセット」ボタンを備えたこのストップウォッチ JavaScript を見つけました。このスクリプトの機能は優れていますが、少し改善したいと思います。ボタンの背景を CSS ボーダー画像でスタイル設定できましたが、javascript を使用して「開始」、「停止」、「リセット」のテキストをアイコンに置き換えたいと考えています。
また、ユーザーが別の領域をクリックしたときにタイマーを開始したいと思います。たとえば、これを使用して、ユーザーがパズルを解くのにかかる時間を追跡することができます...そのため、パズルに記録されたユーザーの最初のイベントで「開始」ボタンをアクティブにできれば素晴らしいと思います。クリックごとにイベントリスナーを作成することについて考えましたが、ボタンが各イベントで開始/停止を切り替える可能性があるのではないかと心配しています。
最後に、「停止」ボタンが非表示の div をトリガーし、ゲームの一時停止中にパズルの上にメッセージ画面が表示されるとよいでしょう。以下は私のコードのスニペットです
ジャバスクリプト
var sec = 0;
var min = 0;
var hour = 0;
function stopwatch(text) {
sec++;
if (sec == 60) {
sec = 0;
= min + 1; }
else {
min = min; }
if (min == 60) {
min = 0;
hour += 1; }
if (sec<=9) { sec = "0" + sec; }
document.clock.stwa.value = ((hour<=9) ? "0"+hour : hour) + " : " + ((min<=9) ? "0" + min : min) + " : " + sec;
if (text == "Start") { document.clock.theButton.value = "Stop";}
if (text == "Stop") { document.clock.theButton.value = "Start"; }
if (document.clock.theButton.value == "Start") {
window.clearTimeout(SD);
alert("Timer is Paused...Resume?");
return true; }
SD=window.setTimeout("stopwatch();", 1000);
}
function resetIt() {
sec = -1;
min = 0;
hour = 0;
if (document.clock.theButton.value == "Stop") {
document.clock.theButton.value = "Start"; }
window.clearTimeout(SD);
}
CSS
.button {
border-width:0 5px; -webkit-border-image:url(../images/toolButton-791569.png) 0 5 0 5; padding:7px 0; font: bold 12px Arial,sans-serif; color:#fff; width:auto; margin:5px 10px 0 0; width:auto; height: 25px; text-align:center; cursor:pointer;
}
HTML
<div id="timer">
<form name="clock">
<input type="text" size="14" name="stwa" value="00 : 00 : 00" style="text-align:center; position: relative; top: 0px; background: #ccc; font-weight: bold; font-size: 14px;" />
<br/><input type="button" class="button" name="theButton" onClick="stopwatch(this.value);" value="Start" />
<input type="button" class="button" value="Reset" onClick="resetIt();reset();" />
</form></div>
このコミュニティの優秀なプログラマーにとって、この質問は些細なことだと思うかもしれませんが、ご容赦ください。私は初心者のプログラマーで、この課題のせいで眠れぬ夜を何度も過ごしています。助けてください...
ありがとう、カルロス