第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

刷新后如何繼續(xù)運行我的倒計時?

刷新后如何繼續(xù)運行我的倒計時?

牛魔王的故事 2022-06-05 16:50:49
我正在學(xué)習(xí) JS,但我被困住了......我想創(chuàng)建一個倒計時(它已經(jīng)完成,我的倒計時正在工作),當頁面重新加載時它會繼續(xù)運行。我使用 sessionStorage 來“保存”倒計時值,并在頁面加載時檢查 sessionStorage 是否存在。問題是,我不知道如何使用保存在 sessionStorage 中的值繼續(xù)運行倒計時。請你幫助我好嗎?class Timer {    constructor(secondes, minutes) {        this.secondes = secondes;        this.minutes = minutes;        this.button = document.getElementById("button");        this.counter = document.getElementById("counter");        this.storageCheck();    }    countdown(minutes) {        var seconds = this.secondes;        var mins = this.minutes;         var myCounter = this.counter;         function tick() {            var current_minutes = mins-1;            seconds--;            myCounter.innerHTML = current_minutes + ":" + (seconds < 10 ? "0" : "") + seconds;            var duration = sessionStorage.setItem("timer", myCounter.innerHTML);        if( seconds > 0 ) {                setTimeout(tick, 1000);            } else {                if(mins > 1){                    countdown(mins-1);                           }            }        }      tick();    }    buttonClick() {        button.addEventListener("click", () => {            this.countdown(this.minutes);        })    }    storageCheck() {        if (sessionStorage.getItem("timer")) {            // keep the countdown running        }    }}let newTimer = new Timer(60, 20);newTimer.buttonClick();<!DOCTYPE html><html><head>    <title>Test Countdown</title></head><body>    <div id="counter"></div>    <button id="button">Run</button>    <script type="text/javascript" src="countdown.js"></script></body></html>
查看完整描述

3 回答

?
30秒到達戰(zhàn)場

TA貢獻1828條經(jīng)驗 獲得超6個贊

在初始化秒和分鐘之前的構(gòu)造函數(shù)中,檢查它們是否在存儲中。如果它們不存在,則只設(shè)置this.secondes = secondes和this.minutes = minutes;


   constructor(secondes, minutes) {

        this.button = document.getElementById("button");

        this.counter = document.getElementById("counter");

        if(!this.storageCheck()){ //check if seconds are mins are stored in storage

            this.secondes = secondes; //if not set mins and sec to value passed in constructor

            this.minutes = minutes;

        }

        else{

          this.countdown(this.minutes);

        }



    }

在存儲檢查功能中,檢查值是否存在,如果獲取值并設(shè)置為 this.secondes 和 this.minutes 并返回 true 否則返回 false


  storageCheck() {

        //if both mins and secs exists

        if (sessionStorage.getItem("mins") &&sessionStorage.getItem("secs")) {

            // keep the countdown running

            this.minutes=parseInt(sessionStorage.getItem("mins"));//get min

            this.secondes=parseInt(sessionStorage.getItem("secs"));//get secs

            return true;

        }

        else

          return false;

    }

并在倒計時功能中將值保存到存儲中


sessionStorage.setItem("mins",vm.minutes);//set current min

            sessionStorage.setItem("secs",vm.secondes);//set current sec

嘗試在這里運行:https ://jsbin.com/bavexigute/1/edit?html,js,console,output


  class Timer {


    constructor(secondes, minutes) {

      this.button = document.getElementById("button");

      this.counter = document.getElementById("counter");

      if(!this.storageCheck()){ //check if seconds are mins are stored in storage

        this.secondes = secondes; //if not set mins and sec to value passed in constructor

        this.minutes = minutes;

       }

       else{

      this.countdown();

      }

    }


     countdown() {


       debugger;

       var vm=this;

        if(!(this.minutes-1<0))

           this.minutes--;

       let tick= function(){


           vm.secondes--

           if(vm.secondes==0){

              vm.secondes=59;

              vm.minutes--;

           }

           vm.counter.innerHTML =  vm.minutes + ":" + (vm.secondes < 10 ? "0" : "") + vm.secondes;

           if(vm.minutes == 0 && vm.secondes-1==0){

            vm.secondes--; 

            vm.counter.innerHTML =  vm.minutes + ":" + vm.secondes-1;


            }    

           else{

             setTimeout(tick,1000);

           }

           sessionStorage.setItem("mins",vm.minutes);//set current min

           sessionStorage.setItem("secs", vm.secondes);//set current sec

         }

        setTimeout(tick,1000);

     }    




    buttonClick() {

        button.addEventListener("click", () => {

            this.countdown();

        })

    }


    storageCheck() {

        //if both mins and secs exists

        if (sessionStorage.getItem("mins") && sessionStorage.getItem("secs")) {

            // keep the countdown running

            this.minutes=parseInt(sessionStorage.getItem("mins"));//get min

            this.secondes=parseInt(sessionStorage.getItem("secs"));//get secs

            return true;

        }

        else

          return false;

    }


}


let newTimer = new Timer(60, 20);

newTimer.buttonClick();


查看完整回答
反對 回復(fù) 2022-06-05
?
喵喵時光機

TA貢獻1846條經(jīng)驗 獲得超7個贊

你可以通過這樣做來做一個簡單的技巧


window.onload = function() {

  let minutes = sessionStorage.getItem("minutes")

  let seconds = sessionStorage.getItem("seconds")

  let newTimer = new Timer(seconds, minutes);

};

并且在 sessionStorage 中而不是存儲整個 innerHtml 存儲分鐘和秒,希望它能解決您的問題


查看完整回答
反對 回復(fù) 2022-06-05
?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

如果存在,您可以使用存儲檢查功能覆蓋分鐘和秒?yún)?shù)。


constructor(mins, secs) {

  this.mins = mins

  this.secs = secs

  this.checkStorage = this.checkStorage.bind(this)

  this.checkStorage(mins, secs)

}

checkStorage(mins, secs) {

  if(window.storage) { // or whatever

    this.secs = window.storage.secs

    this.mins = window.storage.mins

  }

}

類似的東西?;旧现恍枳?setStorage 函數(shù)更改已在構(gòu)造函數(shù)中設(shè)置的值。


查看完整回答
反對 回復(fù) 2022-06-05
  • 3 回答
  • 0 關(guān)注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號