仅限 CSS Tailwind CSS 倒计时器。动画数字显示天、小时、分钟和秒。 WCAG AA 可访问,可与 Django、HTMX、Laravel、React 和任何堆栈配合使用。
Countdown components display time remaining until an event, deadline, or promotion ends. Built with animated numeric displays, countdowns create urgency and anticipation. Frutjam 倒计时系统支持多种尺寸、格式和样式,非常适合闪购、活动计时器、发布倒计时和限时优惠。
仅 CSS,无需 JavaScript。 WCAG AA 可访问且与框架无关 - 可与 Django、HTMX、Laravel、React 和任何堆栈配合使用。
| 班级 | 类型 | 描述 |
|---|---|---|
| countdown | 根据 | Animated numeric digit driven by --countdown-value |
| countdown-xs | 尺寸 | 特小号 |
| countdown-sm | 尺寸 | 小的 |
| countdown-md | 尺寸 | 中(默认) |
| countdown-lg | 尺寸 | 大的 |
| countdown-xl | 尺寸 | 特大号 |
基本用法
days
hours
min
sec
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <div class="grid auto-cols-max grid-flow-col gap-5 text-center"> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span style="--countdown-value:15"></span> </span> <span class="mt-1 text-sm text-on-base/60">days</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span style="--countdown-value:10"></span> </span> <span class="mt-1 text-sm text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span style="--countdown-value:24"></span> </span> <span class="mt-1 text-sm text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span style="--countdown-value:5"></span> </span> <span class="mt-1 text-sm text-on-base/60">sec</span> </div> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | function BasicCountdown() { const days = {"--countdown-value": 15} const hours = {"--countdown-value": 10} const minutes = {"--countdown-value": 24} const seconds = {"--countdown-value": 5} return ( <div className="grid auto-cols-max grid-flow-col gap-5 text-center"> <div className="flex flex-col items-center"> <span className="countdown font-mono text-5xl"> <span style={days}></span> </span> <span className="mt-1 text-sm text-on-base/60">days</span> </div> <div className="flex flex-col items-center"> <span className="countdown font-mono text-5xl"> <span style={hours}></span> </span> <span className="mt-1 text-sm text-on-base/60">hours</span> </div> <div className="flex flex-col items-center"> <span className="countdown font-mono text-5xl"> <span style={minutes}></span> </span> <span className="mt-1 text-sm text-on-base/60">min</span> </div> <div className="flex flex-col items-center"> <span className="countdown font-mono text-5xl"> <span style={seconds}></span> </span> <span className="mt-1 text-sm text-on-base/60">sec</span> </div> </div> ) } |
Boxed Style
html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <div class="grid auto-cols-max grid-flow-col gap-3 text-center"> <div class="flex flex-col items-center gap-2"> <div class="bg-neutral text-on-neutral rounded-box flex items-center justify-center px-4 py-3 min-w-16"> <span class="countdown font-mono text-4xl"> <span style="--countdown-value:2"></span> </span> </div> <span class="text-xs uppercase tracking-widest text-on-base/60">days</span> </div> <div class="flex flex-col items-center gap-2"> <div class="bg-neutral text-on-neutral rounded-box flex items-center justify-center px-4 py-3 min-w-16"> <span class="countdown font-mono text-4xl"> <span style="--countdown-value:18"></span> </span> </div> <span class="text-xs uppercase tracking-widest text-on-base/60">hours</span> </div> <div class="flex flex-col items-center gap-2"> <div class="bg-neutral text-on-neutral rounded-box flex items-center justify-center px-4 py-3 min-w-16"> <span class="countdown font-mono text-4xl"> <span style="--countdown-value:37"></span> </span> </div> <span class="text-xs uppercase tracking-widest text-on-base/60">min</span> </div> <div class="flex flex-col items-center gap-2"> <div class="bg-neutral text-on-neutral rounded-box flex items-center justify-center px-4 py-3 min-w-16"> <span class="countdown font-mono text-4xl"> <span style="--countdown-value:20"></span> </span> </div> <span class="text-xs uppercase tracking-widest text-on-base/60">sec</span> </div> </div> |
Clock Format
::
html
1 2 3 | <span class="countdown font-mono text-6xl"> <span style="--countdown-value:10"></span>:<span style="--countdown-value:24"></span>:<span style="--countdown-value:59"></span> </span> |
倒计时尺寸
hours
min
sec
xs
hours
min
sec
sm
hours
min
sec
md
hours
min
sec
lg
hours
min
sec
xl
html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | <div class="flex flex-col gap-6"> <div class="grid auto-cols-max grid-flow-col gap-3 text-center"> <div class="flex flex-col items-center"> <span class="countdown countdown-xs font-mono"><span style="--countdown-value:10"></span></span> <span class="text-xs text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-xs font-mono"><span style="--countdown-value:24"></span></span> <span class="text-xs text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-xs font-mono"><span style="--countdown-value:5"></span></span> <span class="text-xs text-on-base/60">sec</span> </div> <span class="self-center text-xs text-on-base/40">xs</span> </div> <div class="grid auto-cols-max grid-flow-col gap-3 text-center"> <div class="flex flex-col items-center"> <span class="countdown countdown-sm font-mono"><span style="--countdown-value:10"></span></span> <span class="text-xs text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-sm font-mono"><span style="--countdown-value:24"></span></span> <span class="text-xs text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-sm font-mono"><span style="--countdown-value:5"></span></span> <span class="text-xs text-on-base/60">sec</span> </div> <span class="self-center text-xs text-on-base/40">sm</span> </div> <div class="grid auto-cols-max grid-flow-col gap-4 text-center"> <div class="flex flex-col items-center"> <span class="countdown countdown-md font-mono"><span style="--countdown-value:10"></span></span> <span class="text-xs text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-md font-mono"><span style="--countdown-value:24"></span></span> <span class="text-xs text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-md font-mono"><span style="--countdown-value:5"></span></span> <span class="text-xs text-on-base/60">sec</span> </div> <span class="self-center text-xs text-on-base/40">md</span> </div> <div class="grid auto-cols-max grid-flow-col gap-5 text-center"> <div class="flex flex-col items-center"> <span class="countdown countdown-lg font-mono"><span style="--countdown-value:10"></span></span> <span class="text-sm text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-lg font-mono"><span style="--countdown-value:24"></span></span> <span class="text-sm text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-lg font-mono"><span style="--countdown-value:5"></span></span> <span class="text-sm text-on-base/60">sec</span> </div> <span class="self-center text-xs text-on-base/40">lg</span> </div> <div class="grid auto-cols-max grid-flow-col gap-6 text-center"> <div class="flex flex-col items-center"> <span class="countdown countdown-xl font-mono"><span style="--countdown-value:10"></span></span> <span class="text-sm text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-xl font-mono"><span style="--countdown-value:24"></span></span> <span class="text-sm text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown countdown-xl font-mono"><span style="--countdown-value:5"></span></span> <span class="text-sm text-on-base/60">sec</span> </div> <span class="self-center text-xs text-on-base/40">xl</span> </div> </div> |
Live Countdown
days
hours
min
sec
html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <div class="grid auto-cols-max grid-flow-col gap-5 text-center" id="live-timer"> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span id="cd-days" style="--countdown-value:0"></span> </span> <span class="mt-1 text-sm text-on-base/60">days</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span id="cd-hours" style="--countdown-value:0"></span> </span> <span class="mt-1 text-sm text-on-base/60">hours</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span id="cd-minutes" style="--countdown-value:0"></span> </span> <span class="mt-1 text-sm text-on-base/60">min</span> </div> <div class="flex flex-col items-center"> <span class="countdown font-mono text-5xl"> <span id="cd-seconds" style="--countdown-value:0"></span> </span> <span class="mt-1 text-sm text-on-base/60">sec</span> </div> </div> <script> const target = new Date(Date.now() + 2 * 24 * 60 * 60 * 1000); function update() { const diff = Math.max(0, target - Date.now()); document.getElementById('cd-days').style.setProperty('--countdown-value', Math.floor(diff / 86400000)); document.getElementById('cd-hours').style.setProperty('--countdown-value', Math.floor((diff % 86400000) / 3600000)); document.getElementById('cd-minutes').style.setProperty('--countdown-value', Math.floor((diff % 3600000) / 60000)); document.getElementById('cd-seconds').style.setProperty('--countdown-value', Math.floor((diff % 60000) / 1000)); } update(); setInterval(update, 1000); </script> |
Event Countdown
Flash Sale Ends In
Don't Miss Out!
html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <div class="card bg-linear-to-br from-primary to-secondary shadow-lg max-w-sm"> <div class="card-content"> <p class="text-sm font-semibold uppercase tracking-widest text-white/80">Flash Sale Ends In</p> <h2 class="card-title text-2xl mt-1 text-white">Don't Miss Out!</h2> <div class="grid auto-cols-max grid-flow-col gap-4 text-center mt-4"> <div class="flex flex-col items-center"> <div class="bg-white/20 rounded-lg px-4 py-2 min-w-14"> <span class="countdown font-mono text-4xl font-bold text-white"> <span style="--countdown-value:2"></span> </span> </div> <span class="mt-1 text-xs text-white/75">days</span> </div> <div class="flex flex-col items-center"> <div class="bg-white/20 rounded-lg px-4 py-2 min-w-14"> <span class="countdown font-mono text-4xl font-bold text-white"> <span style="--countdown-value:18"></span> </span> </div> <span class="mt-1 text-xs text-white/75">hours</span> </div> <div class="flex flex-col items-center"> <div class="bg-white/20 rounded-lg px-4 py-2 min-w-14"> <span class="countdown font-mono text-4xl font-bold text-white"> <span style="--countdown-value:37"></span> </span> </div> <span class="mt-1 text-xs text-white/75">min</span> </div> <div class="flex flex-col items-center"> <div class="bg-white/20 rounded-lg px-4 py-2 min-w-14"> <span class="countdown font-mono text-4xl font-bold text-white"> <span style="--countdown-value:20"></span> </span> </div> <span class="mt-1 text-xs text-white/75">sec</span> </div> </div> </div> </div> |
使用 Claude Code、Cursor 或其他 AI 编辑器?
Cherry MCP 为您的 AI 编辑器按需提供准确的 倒计时 类名称和结构。不再有幻觉课程。