色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

當我單擊“取消”時,計時器隨機重置

老白1年前7瀏覽0評論

這是一個計時器。上面帶有秒表符號的按鈕是Set按鈕。我點擊它,輸入56分鐘,然后按下開始。不小心又點了設置鍵,當它提示我的時候,我點了取消,它只是隨機重置回00:00。為什么會出現這種情況,我該如何解決?我做錯什么了嗎?

class Timer {
  constructor(root) {
    root.innerHTML = Timer.getHTML();

    this.el = {
      minutes: root.querySelector(".timer__part--minutes"),
      seconds: root.querySelector(".timer__part--seconds"),
      control: root.querySelector(".timer__btn--control"),
      reset: root.querySelector(".timer__btn--reset")
    };

    this.interval = null;
    this.remainingSeconds = 0;

    this.el.control.addEventListener("click", () => {
      if (this.interval === null) {
        this.start();
      } else {
        this.stop();
      }
    });

    this.el.reset.addEventListener("click", () => {
      const inputMinutes = prompt("Enter number of minutes. To add seconds, use a decimal.");

      if (inputMinutes < 60) {
        this.stop();
        this.remainingSeconds = inputMinutes * 60;
        this.updateInterfaceTime();
      }
    });
  }

  updateInterfaceTime() {
    const minutes = Math.floor(this.remainingSeconds / 60);
    const seconds = this.remainingSeconds % 60;

    this.el.minutes.textContent = minutes.toString().padStart(2, "0");
    this.el.seconds.textContent = seconds.toString().padStart(2, "0");
  }

  updateInterfaceControls() {
    if (this.interval === null) {
      this.el.control.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" height="30px" viewBox="0 0 24 24" width="30px" fill="#ffffff"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M8 5v14l11-7L8 5z"/></svg>`;
      this.el.control.classList.add("timer__btn--start");
      this.el.control.classList.remove("timer__btn--stop");
    } else {
      // Pause button
      this.el.control.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" height="30px" viewBox="0 0 24 24" width="30px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/></svg>`;
      this.el.control.classList.add("timer__btn--stop");
      this.el.control.classList.remove("timer__btn--start");
    }
  }

  start() {
    if (this.remainingSeconds === 0) return;

    this.interval = setInterval(() => {
      this.remainingSeconds--;
      this.updateInterfaceTime();

      if (this.remainingSeconds === 0) {
        this.stop();
      }
    }, 1000);

    this.updateInterfaceControls();
  }

  stop() {
    clearInterval(this.interval);

    this.interval = null;

    this.updateInterfaceControls();
  }

  static getHTML() {
    return `
            <span class="timer__part timer__part--minutes">00</span>
            <span class="timer__part">:</span>
            <span class="timer__part timer__part--seconds">00</span>
            <!-- Play button -->
<button type="button" class="timer__btn timer__btn--control timer__btn--start">
<svg xmlns="http://www.w3.org/2000/svg" height="30px" viewBox="0 0 24 24" width="30px" fill="#ffffff"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M8 5v14l11-7L8 5z"/></svg>
            </button>
            <button type="button" class="timer__btn timer__btn--reset" title="Click to add time. To add seconds, use a decimal.">
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="30px" viewBox="0 0 24 24" width="30px" fill="#FFFFFF"><g><rect fill="none" height="24" width="24"/></g><g><g><g><path d="M15,1H9v2h6V1z M11,14h2V8h-2V14z M19.03,7.39l1.42-1.42c-0.43-0.51-0.9-0.99-1.41-1.41l-1.42,1.42 C16.07,4.74,14.12,4,12,4c-4.97,0-9,4.03-9,9s4.02,9,9,9s9-4.03,9-9C21,10.88,20.26,8.93,19.03,7.39z M12,20c-3.87,0-7-3.13-7-7 s3.13-7,7-7s7,3.13,7,7S15.87,20,12,20z"/></g></g></g></svg>
            </button>
        `;
    
  }
}

new Timer(
    document.querySelector(".timer")
);

body {
  background: #dddddd;
  margin: 24px;
}

.timer {
  font-family: Roboto;
  display: inline-block;
  padding: 24px 32px;
  border-radius: 30px;
  background: white;
  width: 250px;
  height: 50px;
}

.timer__part {
  font-size: 36px;
  font-weight: bold;
}

.timer__btn {
  width: 50px;
  height: 50px;
  margin-left: 16px;
  border-radius: 50%;
  border: none;
  background: #8208e6;
  cursor: pointer;
}

.timer__btn--start {
  background: #00b84c;
}

.timer__btn--stop {
  background: #ff0256;
}

<div class="timer">
  <center>
    <div class="loader">
      <!-- The loading symbol will be shown until the timer loads. -->
  <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="40px" height="40px" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve">
  <path fill="#000" d="M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z">
    <animateTransform attributeType="xml"
      attributeName="transform"
      type="rotate"
      from="0 25 25"
      to="360 25 25"
      dur="0.6s"
      repeatCount="indefinite"/>
    </path>
    </svg>
    </center>
</div>

當你在提示中點擊取消時,它將返回null,而在JS中當你選擇null & lt它將為真,因為當你比較null和number時,它將轉換為0(你可以在控制臺中運行Number(null)來檢查它)。如果您使用空字符串按OK,結果也是一樣的,因為當您將“”與number進行比較時,它將轉換為0(您可以在控制臺中運行Number(' ')來檢查它)

名為inputMinutes的變量可以是null、string和空字符串(請記住,在您的情況下,只有空格的字符串等于空字符串,因此您應該使用trim()刪除不必要的空格)。當您將此行中的inputMinutes與60進行比較時:

if (inputMinutes < 60) {
    /*code*/
}

您可以獲得4種變體:

null & lt60 ' & lt60 可以轉換成數字的字符串' & lt60 無法轉換為數字的字符串' & lt60 JS有自己比較不同類型的規則。因此,我建議您閱讀這些文章,全面了解JS比較什么以及如何比較:

你可以從javascript.info閱讀簡短版本

比較 如需全面了解,您可以閱讀MDN:

平等比較和相同。 小于運算符 大于運算符 小于或等于運算符 大于或等于運算符 等式運算符 不等式算子 嚴格相等運算符 嚴格不等式算子 我們繼續:)就像我上面說的當你用number JS比較某個東西的時候,試著把另一個類型轉換成number。因此,上面的變體將以這種方式進行比較(Number(x)會將輸入轉換為數字類型):

數字(空)& lt60 數字(“”)& lt60 Number('可以轉換為number的字符串')& lt60 Number('不能轉換為number的字符串')& lt60 下一步:

0 & lt60 -這是真的 0 & lt60 -這是真的 號碼& lt60 -答案取決于數字 NaN & lt60 -這是錯誤的 在3個變體中,我們得到了簡單的數字,所以它會像你預期的那樣工作 在4變量中,我們得到NaN,所以我們得到false,所以if塊將不被執行 我們對前兩個選項感興趣。當我們試圖用數字JS乘某物的時候,試著用同樣的規則把某物轉換成數字,所以你得到2個變量:

null * 60 = & gt0 * 60 -答案是0 ' * 60 = & gt0 * 60 -答案是0 因此,this.remainingSeconds將等于0,因此在updateInterfaceTime方法中,分和秒將等于0,因此您在計時器中得到00:00