jQuery 时间倒计时是指使用 jQuery 库来实现一个倒计时功能,通常用于网页上显示某个事件或活动的剩余时间。倒计时可以通过 JavaScript 的 setInterval
或 setTimeout
函数来实现,结合 jQuery 来简化 DOM 操作。
以下是一个简单的 jQuery 时间倒计时示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery 倒计时</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<div id="countdown">倒计时: </div>
<script>
$(document).ready(function() {
var endtime = new Date().getTime() + 60 * 1000; // 1 分钟后结束
var interval = setInterval(function() {
var now = new Date().getTime();
var distance = endtime - now;
if (distance < 0) {
clearInterval(interval);
$('#countdown').html('倒计时结束');
return;
}
var minutes = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
$('#countdown').html('倒计时: ' + minutes + ' 分钟 ' + seconds + ' 秒');
}, 1000);
});
</script>
</body>
</html>
setInterval
的执行间隔不精确导致的。setTimeout
递归调用,每次计算下一次的时间。var endtime = new Date().getTime() + 60 * 1000; // 1 分钟后结束
function updateCountdown() {
var now = new Date().getTime();
var distance = endtime - now;
if (distance < 0) {
$('#countdown').html('倒计时结束');
return;
}
var minutes = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
$('#countdown').html('倒计时: ' + minutes + ' 分钟 ' + seconds + ' 秒');
setTimeout(updateCountdown, 1000);
}
updateCountdown();
$.ajax({
url: 'get-endtime.php', // 假设服务器返回结束时间戳
success: function(endtime) {
endtime = parseInt(endtime);
function updateCountdown() {
var now = new Date().getTime();
var distance = endtime - now;
if (distance < 0) {
$('#countdown').html('倒计时结束');
return;
}
var minutes = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
$('#countdown').html('倒计时: ' + minutes + ' 分钟 ' + seconds + ' 秒');
setTimeout(updateCountdown, 1000);
}
updateCountdown();
}
});
通过以上方法,可以有效地实现和解决 jQuery 时间倒计时中的常见问题。
领取专属 10元无门槛券
手把手带您无忧上云