当前位置:首页 > 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);
});

带格式化的倒计时显示

jquery倒计时

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);
});

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

jquery倒计时

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);

添加完成回调:

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

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

相关文章

jquery插件

jquery插件

jQuery 插件开发指南 jQuery 插件是一种扩展 jQuery 功能的模块化方式,允许开发者封装可重用的代码。以下是开发和使用 jQuery 插件的基本方法。 插件基本结构 jQuery…

jquery api

jquery api

以下是关于 jQuery API 的详细介绍和使用方法: jQuery API 概述 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Aja…

jquery 滑块

jquery 滑块

jQuery 滑块实现方法 使用 jQuery 实现滑块功能可以通过多种方式完成,包括使用原生 jQuery 或结合插件(如 jQuery UI)。以下是几种常见实现方法: 使用 jQuery U…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

jquery属性

jquery属性

jQuery 属性操作 jQuery 提供了多种方法来操作 HTML 元素的属性。这些方法可以用于获取、设置、修改或删除元素的属性。 获取属性值 使用 attr() 方法可以获取指定属性的值。例如…

jquery加载

jquery加载

jQuery 加载方法 使用 CDN 加载 jQuery 推荐通过公共 CDN(如 Google、Microsoft 或 jQuery 官方)加载,速度快且可能已被浏览器缓存。 <scr…