Új hozzászólás Aktív témák

  • Bzozoo

    tag

    válasz lanszelot #9845 üzenetére

    Körülbelül így néz ki.

    A kódot ide is beteszem, ha esetleg a link eltörik egyszer:

    const timer = {
      default: 0,
      get() {
        return this.default;
      },
      increase() {
       this.default += 1;
      },
      reset() {
        this.default = 0;
      }
    };


    (() => {
      render(timer.get());
      document.addEventListener("click", handleButtons);
    })();

    function handleButtons(event) {
      switch (event.target.id) {
        case "startbutton":
          handler.start();
          break;
        case "stopbutton":
          handler.stop();
          break;
        case "resetbutton":
          reset();
          break;
      }
    }

    const handler = {
      interval: null,
      start() {
        if (this.interval) {
          clearInterval(this.interval);
          this.interval = null;
        }
        this.interval = setInterval(flow, 1000);
      },
      stop() {
        clearInterval(this.interval);
        this.interval = null;
      }
    };

    function TimerTemplate({ hours = "00", minutes = "00", seconds = "00" }) {
      return `${hours}h:${minutes}m:${seconds}s`;
    }

    function timeConverter(time = 0) {
      const date = new Date(time * 1000).toISOString();
      const tsring = date.substr(11, 8);
      const [hours, minutes, seconds] = tsring.split(":");
      return { hours, minutes, seconds };
    }

    function render(time) {
      app.innerHTML = TimerTemplate(timeConverter(time));
    }

    function flow() {
      timer.increase();
      render(timer.get());
    }

    function reset() {
      timer.reset();
      render();
    }

Új hozzászólás Aktív témák

Hirdetés