javascriptによるカウントダウンタイマー制作
只今、javascriptでカウントダウンタイマーを制作しています。
ボタンをクリックすると動いているカウントダウンタイマーに10秒追加するようにしたいのですが、いろいろためしてみたのですがうまくいきません。散々悩んでいるうちに2日もたってしまいました。
御存じの方、いらっしゃいましたらどうか教えていただけませんでしょうか?
<script type="text/javascript">
<!--
if (window.attachEvent){
window.attachEvent('onload', showday);
}else {
window.addEventListener('load', showday , false);
}
function settime1(){
var year =2011; //年
var mon =4; //月
var day =2; //日
var time =20; //時
var min = 20; //分
var sec = 15; //秒
var xday = new Date(year,mon-1,day,time,min,sec); //基準になる年月日
return xday;
}
function showday() {
var nowday = new Date();
var xday = new settime1();
var passtime= xday.getTime()-nowday.getTime(); //今から基準になる日までの経過時間 1/1000秒単位
var cnt_day = Math.floor(passtime/(1000*60*60*24)); // カウントダウン表示 (日にち) の取得
passtime = passtime -(cnt_day*(1000*60*60*24)); // 経過秒から(日にち)を引く
var cnt_hour = Math.floor(passtime/(1000*60*60));// カウントダウン表示 (時) の取得
passtime = passtime -(cnt_hour*(1000*60*60)); // 経過秒から(時)を引く
var cnt_min = Math.floor(passtime/(1000*60)); // カウントダウン表示 (分) 取得
passtime = passtime -(cnt_min*(1000*60));// 経過秒から(分)を引く
cnt_sec = Math.floor(passtime/1000);// カウントダウン表示 (秒) 取得
passtime = passtime -(cnt_sec*(1000)); // 経過秒から(秒)を引く
var cnt_millisec = Math.floor(passtime/10); // カウントダウン表示 (100/1秒) 取得
// 分、秒、ミリ秒を2桁で表示する。
if(cnt_min<10){cnt_min = '0' + cnt_min;}
if(cnt_sec<10){cnt_sec = '0' + cnt_sec;}
if(cnt_millisec<10){cnt_millisec = '0' + cnt_millisec;}
if((xday - nowday) > 0){
document.tbox.dspday.value = cnt_hour+":"+cnt_min+":"+cnt_sec;
}else {
document.tbox.dspday.value = "終了"
}
timerID = setTimeout('showday()', 1000);
}
</script>
</head>
<body>
<form name="tbox" action="#">
<input name="dspday" id="dspday" type="text" style="position:absolute; top:475px;left:55px; font-size : 25px; z-index:3; color:navy; background:transparent; border-width : 0px ;border-style : solid;font-weight :bold ;" size="45" />
<input name="dspdaybtn" type="button" onClick="" value="10秒追加" style="position:absolute; top:510px; left:70px; z-index:4;"/>
</form>
お礼
ありがとうございました。