這篇文章將為大家詳細(xì)講解有關(guān)如何使用jQuery+localStorage實(shí)現(xiàn)計(jì)時(shí)器,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供臨江企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為臨江眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
原型

需求
1.關(guān)閉瀏覽器時(shí)時(shí)間繼續(xù)運(yùn)行
2.刷新時(shí)保持當(dāng)前狀態(tài)
3.結(jié)束時(shí)間保存在客戶端
示例代碼
<div class="wrapper"> <div class="app"> <div class="container stopwatch"> <div class="clock inactive z-depth-1"> <span>0:00:00</span> <!-- <div class="overlay waves-effect"></div>--> </div> <form> <a id="stopwatch-btn-start" class="waves-effect waves-teal btn-flat">開始</a> </form> </div> </div> </div>
<script>
// Stopwatch
var stopwatchInterval = 0; // The interval for our loop.循環(huán)的間隔。
var stopwatchClock = $(".container.stopwatch").find(".clock"),
stopwatchDigits = stopwatchClock.find('span');
// 檢查前一個(gè)會(huì)話是否在秒表運(yùn)行時(shí)結(jié)束。
// 如果是的話,按時(shí)間重新開始。
//即 關(guān)閉瀏覽器,點(diǎn)擊開始,在后臺(tái)保持計(jì)時(shí)的狀態(tài)
if(Number(localStorage.stopwatchBeginingTimestamp) && Number(localStorage.stopwatchRunningTime)){
var runningTime = Number(localStorage.stopwatchRunningTime) + new Date().getTime() - Number(localStorage.stopwatchBeginingTimestamp);
localStorage.stopwatchRunningTime = runningTime;
startStopwatch();
}
//如果前一個(gè)會(huì)話有運(yùn)行時(shí)間,就把它寫在時(shí)鐘上。
// 如果沒有初始化為0。
//即結(jié)束時(shí)不可刷新
if(localStorage.stopwatchRunningTime){
stopwatchDigits.text(returnFormattedToMilliseconds(Number(localStorage.stopwatchRunningTime)));
}
else{
localStorage.stopwatchRunningTime = 0;
}
/* 實(shí)現(xiàn)開始結(jié)束 */
$("#stopwatch-btn-start").toggle(function() {
$(this).text ('開始').css("background", "#3bb4f2");
if(stopwatchClock.hasClass('inactive')){
startStopwatch()
}
}, function() {
$(this).text ('結(jié)束').css("background", "red");
pauseStopwatch();
})
// Pressing the clock will pause/unpause the stopwatch.
//按下暫停/恢復(fù)的時(shí)鐘秒表
/*stopwatchClock.on('click',function(){
if(stopwatchClock.hasClass('inactive')){
startStopwatch()
}
else{
pauseStopwatch();
}
});*/
/*開始計(jì)時(shí)*/
function startStopwatch(){
// 防止多個(gè)間隔同時(shí)進(jìn)行。
clearInterval(stopwatchInterval);
var startTimestamp = new Date().getTime(),
runningTime = 0;
localStorage.stopwatchBeginingTimestamp = startTimestamp;
// 應(yīng)用程序還記得上一次會(huì)話運(yùn)行了多長(zhǎng)時(shí)間。
if(Number(localStorage.stopwatchRunningTime)){
runningTime = Number(localStorage.stopwatchRunningTime);
}
else{
localStorage.stopwatchRunningTime = 1;
}
// 每隔100ms重新計(jì)算運(yùn)行時(shí)間,計(jì)算公式是
// 當(dāng)你上次啟動(dòng)時(shí)鐘+上次運(yùn)行時(shí)間
stopwatchInterval = setInterval(function () {
var stopwatchTime = (new Date().getTime() - startTimestamp + runningTime);
stopwatchDigits.text(returnFormattedToMilliseconds(stopwatchTime));
}, 100);
stopwatchClock.removeClass('inactive');
}
/*停止計(jì)時(shí)*/
function pauseStopwatch(){
// 停止計(jì)時(shí)
clearInterval(stopwatchInterval);
if(Number(localStorage.stopwatchBeginingTimestamp)){
// 計(jì)算運(yùn)行時(shí)間。
// 新的運(yùn)行時(shí)間=上次運(yùn)行時(shí)間+現(xiàn)在-最后一次啟動(dòng)
var runningTime = Number(localStorage.stopwatchRunningTime) + new Date().getTime() - Number(localStorage.stopwatchBeginingTimestamp);
localStorage.stopwatchBeginingTimestamp = 0;
localStorage.stopwatchRunningTime = runningTime;
stopwatchClock.addClass('inactive');
}
}
// 重置.
/*function resetStopwatch(){
clearInterval(stopwatchInterval);
stopwatchDigits.text(returnFormattedToMilliseconds(0));
localStorage.stopwatchBeginingTimestamp = 0;
localStorage.stopwatchRunningTime = 0;
stopwatchClock.addClass('inactive');
}
*/
function returnFormattedToMilliseconds(time){
var
seconds = Math.floor((time/1000) % 60),
minutes = Math.floor((time/(1000*60)) % 60),
hours = Math.floor((time/(1000*60*60)) % 24);
seconds = seconds < 10 ? '0' + seconds : seconds;
minutes = minutes < 10 ? '0' + minutes : minutes;
return hours + ":" + minutes + ":" + seconds;
}
</script>關(guān)于“如何使用jQuery+localStorage實(shí)現(xiàn)計(jì)時(shí)器”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
本文題目:如何使用jQuery+localStorage實(shí)現(xiàn)計(jì)時(shí)器
網(wǎng)站鏈接:http://chinadenli.net/article0/ihpeoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、建站公司、響應(yīng)式網(wǎng)站、Google、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)