JavaScript 实现倒计时功能的两种方法
作者:半夏时间:2026-10-29 18:54:49浏览:654
本文介绍了JavaScript中实现倒计时的两种常用方式。首先展示了原生JS通过Math.floor和取余运算将秒数转换为月、天、时、分、秒格式的方法,并结合setInterval实现动态刷新。其次提供了基于jQuery的插件封装形式,支持自定义过期提示,便于在项目中复用。
JavaScript倒计时实现概述
本文通过具体代码示例,详细讲解了JavaScript中实现倒计时功能的简单方法,供读者参考学习。
原生JS倒计时核心逻辑
function timeDown(second) {
var month = '', day = '', hour = '', minute = '';
if (second >= 86400 * 30) {
month = Math.floor(second / (86400 * 30)) + '月';
second = second % (86400 * 30);
}
if (second >= 86400) {
day = Math.floor(second / 86400) + '天';
second = second % (86400);
}
if (second >= 3600) {
hour = Math.floor(second / 3600) + '小时';
second = second % 3600;
}
if (second >= 60) {
minute = Math.floor(second / 60) + '分';
second = second % 60;
}
if (second > 0) {
second = second ? second + '秒' : '';
}
return month + day + hour + minute + second;
}
若需在前端页面展示倒计时效果,可参考以下代码进行调用与实现。
jQuery动态刷新示例
<!-- 引入jquery -->
<script>
$(function () {
var second = 10000;
$('.remain_time').html(timeDown(second));
setInterval(function () {
second--;
$('.remain_time').html(timeDown(second));
}, 1000);
})
</script>
<span class="remain_time"></span>
以下是使用原生JavaScript结合jQuery实现的倒计时逻辑,通过计算剩余秒数并格式化为月、天、时、分、秒的形式进行显示。
jQuery插件封装形式
$.fn.timeDown = function (opt) {
var second = opt.second;
var tip = '已过期';
var $this = this;
self._timeDown = function (second) {
var month = '', day = '', hour = '', minute = '';
if (second >= 86400 * 30) {
month = Math.floor(second / (86400 * 30)) + '月';
second = second % (86400 * 30);
}
if (second >= 86400) {
day = Math.floor(second / 86400) + '天';
second = second % (86400);
}
if (second >= 3600) {
hour = Math.floor(second / 3600) + '小时';
second = second % 3600;
}
if (second >= 60) {
minute = Math.floor(second / 60) + '分';
second = second % 60;
}
if (second > 0) {
second = second ? second + '秒' : '';
} else {
return tip;
}
return month + day + hour + minute + second;
};
$this.html(self._timeDown(second));
setInterval(function () {
second--;
$this.html(self._timeDown(second));
}, 1000)
};
// 使用方式
$('.remain_time').timeDown({second:1000,tip:'已过期'})
希望上述关于JavaScript程序设计的介绍能为您提供帮助。
作者最新文章
JavaScript闭包与类(Class)的区别及适用场景对比
2026-11-05 15:48:57
JavaScript入门要学ES6吗?let与箭头函数等新特性解析
2026-11-05 14:49:16
JavaScript 8种数据类型详解:基本类型与引用类型的区别
2026-11-05 14:25:15
怎么在JavaScript中使用async/await优化Ajax异步流程
2026-11-05 13:56:15
JavaScript replace回调函数实现动态正则替换逻辑
2026-11-05 13:52:13
