Rumah > hujung hadapan web > tutorial js > Bagaimana untuk melaksanakan pemasa undur dalam js

Bagaimana untuk melaksanakan pemasa undur dalam js

下次还敢
Lepaskan: 2024-05-01 04:18:19
asal
1047 orang telah melayarinya

Terdapat dua kaedah untuk melaksanakan pemasa undur dalam JavaScript: setInterval(): Cipta pemasa dan panggil fungsi berulang kali setiap milisaat yang ditentukan. setTimeout(): Panggil fungsi sekali sahaja, menangguhkan masa yang ditentukan.

Bagaimana untuk melaksanakan pemasa undur dalam js

Pelaksanaan pemasa undur dalam JS

Dalam JavaScript, terdapat beberapa cara untuk melaksanakan pemasa undur. Dua kaedah berikut biasanya digunakan:

1. kaedah setInterval()

kaedahsetInterval() mencipta pemasa yang berulang kali memanggil fungsi untuk bilangan milisaat tertentu. Untuk melaksanakan pemasa undur menggunakan kaedah setInterval(), ikut langkah berikut: setInterval() 方法创建一个定时器,它以指定的毫秒数重复调用一个函数。要使用 setInterval() 方法实现倒计时器,请按以下步骤操作:

  • 定义一个函数来更新倒计时。该函数应将当前时间与目标时间进行比较,并显示剩余时间。
  • 计算剩余时间的毫秒数。
  • 使用 setInterval() 方法每隔一定的毫秒数调用更新函数。
  • 当倒计时结束时,清除 setInterval 定时器。

2. setTimeout() 方法

setTimeout() 方法仅调用一次函数,延迟指定的时间。要使用 setTimeout() 方法实现倒计时器,请按以下步骤操作:

  • 定义一个递归函数来更新倒计时。该函数应将当前时间与目标时间进行比较,并显示剩余时间。
  • 在函数中,计算剩余时间的毫秒数。
  • 使用 setTimeout()
    • Tentukan fungsi untuk mengemas kini undur. Fungsi harus membandingkan masa semasa dengan masa sasaran dan memaparkan masa yang tinggal.
    • Kira baki masa dalam milisaat.
  • Gunakan kaedah setInterval() untuk memanggil fungsi kemas kini setiap bilangan milisaat tertentu.

  • Apabila kira detik tamat, kosongkan pemasa setInterval.

    2. kaedah setTimeout()

    setTimeout() kaedah hanya memanggil fungsi sekali, menangguhkan masa yang ditentukan. Untuk melaksanakan pemasa undur menggunakan kaedah setTimeout(), ikut langkah berikut: 🎜
    • Tentukan fungsi rekursif untuk mengemas kini undur. Fungsi harus membandingkan masa semasa dengan masa sasaran dan memaparkan masa yang tinggal. 🎜
    • Dalam fungsi, kira bilangan milisaat yang tinggal. 🎜
    • Gunakan kaedah setTimeout() untuk memanggil fungsi ini selepas baki masa. 🎜🎜🎜🎜Contoh kod (kaedah setInterval())🎜🎜
      <code>function updateCountdown() {
        const targetTime = new Date('2023-12-31');
        const currentTime = new Date();
        const msToTarget = targetTime - currentTime;
        const msToHours = Math.floor(msToTarget / (1000 * 60 * 60));
        const msToMinutes = Math.floor(msToTarget / (1000 * 60)) % 60;
        const msToSeconds = Math.floor(msToTarget / 1000) % 60;
        const countdownDisplay = document.getElementById('countdown');
        countdownDisplay.innerHTML = `${msToHours}:${msToMinutes}:${msToSeconds}`;
        if (msToTarget <= 0) {
          clearInterval(timeoutID);
        }
      }
      
      const timeoutID = setInterval(updateCountdown, 1000);</code>
      Salin selepas log masuk
      🎜🎜Contoh kod (kaedah setTimeout())🎜🎜
      <code>function countdown(ms) {
        const targetTime = Date.now() + ms;
        const countdownDisplay = document.getElementById('countdown');
        const update = () => {
          const msRemaining = targetTime - Date.now();
          if (msRemaining <= 0) {
            return;
          }
          const msToHours = Math.floor(msRemaining / (1000 * 60 * 60));
          const msToMinutes = Math.floor(msRemaining / (1000 * 60)) % 60;
          const msToSeconds = Math.floor(msRemaining / 1000) % 60;
          countdownDisplay.innerHTML = `${msToHours}:${msToMinutes}:${msToSeconds}`;
          setTimeout(update, 1000);
        }
        update();
      }
      
      countdown(3600000);  // 1 小时</code>
      Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pemasa undur dalam js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan