首頁 >web前端 >js教程 >js如何實現動態倒數效果

js如何實現動態倒數效果

青灯夜游
青灯夜游原創
2018-12-10 15:46:175843瀏覽

js實現動態倒數效果的步驟:首先是取得到使用者輸入的目標時間,在取得目前時間,用目標時間減去目前時間,獲得時間差;然後,將得到的時間差傳化為天數、小時、分鐘、秒鐘;最後,動態的輸出這些剩餘時間。

js如何實現動態倒數效果

我們就來一步一步的實作動態倒數:

1、建立顯示的樣式

html程式碼:

<form>目的日期:<br><br>
     <input type="text" id="year"><span>年</span>
     <input type="text" id="month"><span>月</span>
     <input type="text" id="day"><span>日</span><br><br>
     <input type="text" id="hour"><span>时</span>
     <input type="text" id="minute"><span>分</span>
     <input type="text" id="second"><span>秒</span><br><br>
     <input type="button" value="确定" onclick="show()">
</form><br><br>
<div class="time1">还剩时间:<br><br>
     <span id="_d"></span>天 
     <span id="_h"></span>时
     <span id="_m"></span>分
     <span id="_s"></span>秒
</div>

css程式碼:

input{width:50px;height: 20px;border:1px solid black;}
.time1 span{display:inline-block;width:40px;height: 20px;}

效果圖:

js如何實現動態倒數效果

2.實現動態倒數計時--js程式碼

第一步:首先是要取得到目標時間,當我們在頁面輸入目標日期,點擊確認後,得到目標時間。

function show(){
    //获取目的日期
    var myyear=document.getElementById("year").value;
    var mymonth=document.getElementById("month").value-1;
    var myday=document.getElementById("day").value;
    var myhour=document.getElementById("hour").value;
    var myminute=document.getElementById("minute").value;
    var mysecond=document.getElementById("second").value;
    var time=Number(new Date(myyear,mymonth,myday,myhour,myminute,mysecond));
}

第二步:取得目前時間、然後用目標時間減去目前時間,得到剩餘時間,即時間差

//获取当前时间
 var nowTime=Date.now();

//获取时间差
var timediff=Math.round((time-nowTime)/1000);

第三步:將得到的時間差傳化為天數、時、分、秒

//获取还剩多少天
var day=parseInt(timediff/3600/24);

//获取还剩多少小时
var hour=parseInt(timediff/3600%24);

//获取还剩多少分钟
var minute=parseInt(timediff/60%60);

//获取还剩多少秒
var second=timediff%60;

第四步:輸出剩餘時間

//输出还剩多少时间
document.getElementById("_d").innerHTML=day;
document.getElementById("_h").innerHTML=hour;
document.getElementById("_m").innerHTML=minute;
document.getElementById("_s").innerHTML=second;

效果圖:

js如何實現動態倒數效果

#此時還不是動態的輸出,還需要我們手動的不斷刷新,在輸入目標日期。

第五步:使用定時器setTimeout(),動態輸出時間

setTimeout(show,1000);
if(timediff==0){return 0;}

當時間差為0時,回傳0,停止輸出。也可以使用clearInterval()方法停止定時器,不在繼續動態輸出時間:

 var set=setTimeout(show,1000);
if(timediff==0){clearInterval(set);}

當時間差為0時,使用clearInterval()方法停止setTimeout()定時器,不在輸出時間。

動態效果圖:

js如何實現動態倒數效果

#說明:

setInterval() :定義一個間隔性觸發計時器,會依照指定的周期(以毫秒計)來呼叫函數或計算表達式。此方法會不停地呼叫函數,直到 呼叫clearInterval()方法來停止setInterval()計時器或視窗關閉。

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

以上是js如何實現動態倒數效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn