極楽せきゅあブログ

ときどきセキュリティ

タイマー

キャラバンで喋るとき、ふと気づくと時計が視界に入らない、もしくは会場に無いことがあるんですよね。以前はガジェットとか使っていたんだけど、もっと見やすいのが良いなあって思って、ちょっとJavascriptのお勉強がてら作ってみました。

<html>
<body>
<center>
<span id="text" style="font-size:200px;">00:00</span>
<script language="JavaScript">
<!--
k=0;
m=0;
function test(i,j){
    if (k==0) {
        var tid=setInterval("jikken()",1000);
        k=1;
    }
}

function jikken(){
    if ((i==0) || (i==j)) {
        clearInterval(tid);
    }
    else {
        s=i % 60;
        s=( s < 10 ) ? ( "0" + s ) : ( s );
        m=Math.floor( i / 60 );
        m=( m < 10 ) ? ( "0" + m ) : ( m );
	document.getElementById("text").firstChild.nodeValue=m+":"+s;
        i++;
    }
}
//-->
</script>
<br>
設定時刻が来たら、カウントは止まります。<br>
リセットするときはF5キーや再読込ボタンなどでリロードしてください。<br>
<input type="button" onclick="i=1;j=11;test(i,j);" value="10秒">
<input type="button" onclick="i=1;j=61;test(i,j);" value="1分">
<input type="button" onclick="i=1;j=121;test(i,j);" value="2分">
<input type="button" onclick="i=1;j=181;test(i,j);" value="3分">
<input type="button" onclick="i=1;j=301;test(i,j);" value="5分">
<input type="button" onclick="i=1;j=601;test(i,j);" value="10分">
<input type="button" onclick="i=1;j=901;test(i,j);" value="15分">
<input type="button" onclick="i=1;j=1201;test(i,j);" value="20分"><br>
<input type="button" onclick="i=1;j=1501;test(i,j);" value="25分">
<input type="button" onclick="i=1;j=1801;test(i,j);" value="30分">
<input type="button" onclick="i=1;j=2101;test(i,j);" value="35分">
<input type="button" onclick="i=1;j=2401;test(i,j);" value="40分">
<input type="button" onclick="i=1;j=2701;test(i,j);" value="45分">
<input type="button" onclick="i=1;j=3001;test(i,j);" value="50分">
<input type="button" onclick="i=1;j=3301;test(i,j);" value="55分">
<input type="button" onclick="i=1;j=3601;test(i,j);" value="60分">
<br>
<input type="button" onclick="i=0;test(i,j);" value="カウントを止める">
</center>
</body>
</html>

上のヤツは時間が来ると表示が止まるヤツですね。
で、こっちは、ロスタイム表示になるヤツ。

<html>
<body>
<center>
<span id="text" style="font-size:200px;">00:00</span>
<script language="JavaScript">
<!--
k=0;
m=0;
function test(i,j){
    if (k==0) {
        var tid=setInterval("jikken()",1000);
        k=1;
    }
}

function jikken(){
    if (i==j) document.getElementById("text").style.color = "red";
    if (i==0) {
        clearInterval(tid);
    }
    else {
        s=i % 60;
        s=( s < 10 ) ? ( "0" + s ) : ( s );
        m=Math.floor( i / 60 );
        m=( m < 10 ) ? ( "0" + m ) : ( m );
	document.getElementById("text").firstChild.nodeValue=m+":"+s;
        i++;
    }
}
//-->
</script>
<br>
設定時刻が来たら、ロスタイム表示(赤)になります。<br>
リセットするときはF5キーや再読込ボタンなどでリロードしてください。<br>
<form name="pit">
<input type="button" onclick="i=1;j=11;test(i,j);" value="10秒">
<input type="button" onclick="i=1;j=61;test(i,j);" value="1分">
<input type="button" onclick="i=1;j=121;test(i,j);" value="2分">
<input type="button" onclick="i=1;j=181;test(i,j);" value="3分">
<input type="button" onclick="i=1;j=301;test(i,j);" value="5分">
<input type="button" onclick="i=1;j=601;test(i,j);" value="10分">
<input type="button" onclick="i=1;j=901;test(i,j);" value="15分">
<input type="button" onclick="i=1;j=1201;test(i,j);" value="20分"><br>
<input type="button" onclick="i=1;j=1501;test(i,j);" value="25分">
<input type="button" onclick="i=1;j=1801;test(i,j);" value="30分">
<input type="button" onclick="i=1;j=2101;test(i,j);" value="35分">
<input type="button" onclick="i=1;j=2401;test(i,j);" value="40分">
<input type="button" onclick="i=1;j=2701;test(i,j);" value="45分">
<input type="button" onclick="i=1;j=3001;test(i,j);" value="50分">
<input type="button" onclick="i=1;j=3301;test(i,j);" value="55分">
<input type="button" onclick="i=1;j=3601;test(i,j);" value="60分">
</form>
<br>
<input type="button" onclick="i=0;test(i,j);" value="カウントを止める">
</center>
</body>
</html>

正直引数だとかそのへん全然わかってないので(笑)、実験する意味も含めて書いてるから変なコードになってると思います。元ネタはこのへん(http://www.geocities.jp/miyake_kobo/js/koubun_002.html)です。
あと、10秒のボタンはデバッグテスト用ですので、消した方が良いかも(笑)。
おわかりのとおりですが、テキストエディタにコピペしてaaa.htmlとかいうファイルで保存して、それをWebブラウザにドラッグ&ドロップすれば使えるし、サーバーに置いておいて読み込んでも使えますね。Javascriptが必要だけど。
ファイルそのものをサーバーに置いておきましたので、面倒な場合はそちらを使ってみてちょ。
http://www.asahi-net.or.jp/~vp5m-snd/timer.html
http://www.asahi-net.or.jp/~vp5m-snd/timerLosstime.html
ついでにカウントダウンのヤツも作ってみました。
http://www.asahi-net.or.jp/~vp5m-snd/timerDown.html
ここまでで今日は時間切れです。残念w。
とかいいつつ、最後にカウントダウン+ロスタイムなヤツだけちょこっと作ってみました。
http://www.asahi-net.or.jp/~vp5m-snd/timerDownLosstime.html