当前位置:首页 > jquery

jquery倒计时

2026-03-02 17:05:56jquery

jQuery倒计时的实现方法

使用jQuery实现倒计时功能可以通过多种方式完成,以下是几种常见的实现方案:

基础倒计时功能

$(document).ready(function() {
  let timeLeft = 60; // 设置倒计时秒数

  function countdown() {
    timeLeft--;
    $('#countdown').text(timeLeft);

    if(timeLeft <= 0) {
      clearInterval(timer);
      $('#countdown').text("时间到!");
    }
  }

  let timer = setInterval(countdown, 1000);
});

带格式化的倒计时显示

function formatTime(seconds) {
  let minutes = Math.floor(seconds / 60);
  let secs = seconds % 60;
  return `${minutes}:${secs < 10 ? '0' : ''}${secs}`;
}

$(function() {
  let totalSeconds = 300; // 5分钟

  let interval = setInterval(function() {
    totalSeconds--;
    $('#timer').text(formatTime(totalSeconds));

    if(totalSeconds <= 0) {
      clearInterval(interval);
      alert("倒计时结束");
    }
  }, 1000);
});

可暂停的倒计时

let countdownTimer;
let remainingTime = 120;

function updateDisplay() {
  $('#display').text(`${Math.floor(remainingTime/60)}分${remainingTime%60}秒`);
}

function startTimer() {
  countdownTimer = setInterval(function() {
    remainingTime--;
    updateDisplay();

    if(remainingTime <= 0) {
      clearInterval(countdownTimer);
    }
  }, 1000);
}

$('#start').click(startTimer);
$('#pause').click(function() {
  clearInterval(countdownTimer);
});

日期倒计时(距离特定日期)

function getTimeRemaining(endtime) {
  let t = Date.parse(endtime) - Date.parse(new Date());
  return {
    'total': t,
    'days': Math.floor(t / (1000 * 60 * 60 * 24)),
    'hours': Math.floor((t / (1000 * 60 * 60)) % 24),
    'minutes': Math.floor((t / 1000 / 60) % 60),
    'seconds': Math.floor((t / 1000) % 60)
  };
}

function initializeClock(id, endtime) {
  let clock = $(id);

  function updateClock() {
    let t = getTimeRemaining(endtime);

    clock.find('.days').text(t.days);
    clock.find('.hours').text(t.hours);
    clock.find('.minutes').text(t.minutes);
    clock.find('.seconds').text(t.seconds);

    if(t.total <= 0) {
      clearInterval(timeinterval);
    }
  }

  updateClock();
  let timeinterval = setInterval(updateClock, 1000);
}

let deadline = new Date(Date.parse(new Date()) + 15 * 24 * 60 * 60 * 1000);
initializeClock('#clockdiv', deadline);

注意事项

  • 确保DOM加载完成后再执行倒计时代码,使用$(document).ready()或简写$(function(){})
  • 清除定时器使用clearInterval()防止内存泄漏
  • 考虑跨页面保持倒计时状态可使用localStorage
  • 移动端需注意页面隐藏时定时器可能暂停的问题

扩展功能

添加动画效果增强用户体验:

$('#countdown').fadeOut(500).fadeIn(500);

添加完成回调:

jquery倒计时

if(timeLeft <= 0) {
  clearInterval(timer);
  if(typeof onComplete === 'function') {
    onComplete();
  }
}

标签: 倒计时jquery
分享给朋友:

相关文章

jquery 属性

jquery 属性

jQuery 属性操作 jQuery 提供了一系列方法来获取、设置和操作 HTML 元素的属性。以下是常用的属性操作方法: attr() 方法 用于获取或设置元素的属性值。获取属性时,传入属性名;设…

jquery方法

jquery方法

jQuery 核心方法 $() 或 jQuery() 是核心选择器方法,用于获取 DOM 元素或创建 jQuery 对象。支持 CSS 选择器、DOM 元素或 HTML 字符串。 $('#id'…

jquery 选中

jquery 选中

jQuery 选中元素的方法 jQuery 提供了多种方式来选中 DOM 元素,以下是一些常用的方法: 通过 ID 选中元素 使用 # 符号加上元素的 ID 来选中特定元素: $('#elemen…

css jquery

css jquery

CSS 与 jQuery 的基础用法 CSS(层叠样式表)用于控制网页的样式和布局,而 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Aja…

jquery轮播

jquery轮播

jQuery轮播实现方法 jQuery轮播可以通过多种方式实现,以下是几种常见的方法: 使用Slick插件 Slick是一个流行的jQuery轮播插件,功能强大且易于使用。引入jQuery和Slic…

jquery 跳转

jquery 跳转

jQuery 页面跳转方法 使用 jQuery 实现页面跳转可以通过多种方式完成,以下是几种常见的方法: 修改 window.location 属性 // 直接跳转到指定 URL window.l…