纯CSS打造25.60秒精准计时器
创建25.60秒计时器:HTML与CSS实现
使用HTML和CSS构建精确到百分之一秒的计时器,无需JavaScript。以下方法结合CSS动画和SVG路径动画实现。
HTML结构
<div class="timer-container">
<svg class="timer-svg" viewBox="0 0 100 100">
<circle class="timer-base" cx="50" cy="50" r="45"/>
<path class="timer-progress" d="M50,5 A45,45 0 0 1 95,50"/>
</svg>
<div class="timer-display">25.60</div>
</div>
CSS动画实现
.timer-container {
position: relative;
width: 200px;
height: 200px;
}
.timer-svg {
transform: rotate(-90deg);
}
.timer-base {
fill: none;
stroke: #eee;
stroke-width: 5;
}
.timer-progress {
fill: none;
stroke: #4CAF50;
stroke-width: 5;
stroke-linecap: round;
animation: countdown 25.6s linear forwards;
}
.timer-display {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-family: monospace;
font-size: 2rem;
}
@keyframes countdown {
to {
stroke-dashoffset: 0;
}
}
SVG路径动画原理
通过CSS控制SVG路径的stroke-dasharray和stroke-dashoffset属性创建动画效果:
stroke-dasharray定义虚线模式stroke-dashoffset控制虚线起始位置
计算周长公式: [ 周长 = 2 \times \pi \times r = 2 \times \pi \times 45 \approx 282.74 ]
初始设置:
.timer-progress {
stroke-dasharray: 282.74;
stroke-dashoffset: 282.74;
}
精确控制时间
调整动画持续时间与显示数字同步:
- 总动画时间设为25.6秒
- 使用
linear计时函数保持匀速 forwards保持动画结束状态
显示更新可通过CSS计数器实现:
.timer-container {
counter-reset: time 2560;
}
.timer-display::before {
content: counter(time);
animation: count 25.6s steps(2560) forwards;
}
@keyframes count {
to {
counter-increment: time -2560;
}
}
响应式设计改进
添加媒体查询适应不同屏幕:
@media (max-width: 600px) {
.timer-container {
width: 150px;
height: 150px;
}
.timer-display {
font-size: 1.5rem;
}
}
视觉增强技巧
添加发光效果和过渡:
.timer-progress {
filter: drop-shadow(0 0 2px rgba(76, 175, 80, 0.7));
transition: stroke 0.3s ease;
}
通过组合CSS动画、SVG路径绘制和计数器功能,可以创建纯前端实现的精确计时器。这种方法适用于需要轻量级、无JavaScript的计时场景,如演示页面或性能敏感环境。
BbS.okane224.info/PoSt/1121_304102.HtM
BbS.okane225.info/PoSt/1121_159671.HtM
BbS.okane226.info/PoSt/1121_816061.HtM
BbS.okane227.info/PoSt/1121_159911.HtM
BbS.okane228.info/PoSt/1121_278730.HtM
BbS.okane229.info/PoSt/1121_192702.HtM
BbS.okane230.info/PoSt/1121_311875.HtM
BbS.okane231.info/PoSt/1121_734074.HtM
BbS.okane232.info/PoSt/1121_700432.HtM
BbS.okane233.info/PoSt/1121_790999.HtM
BbS.okane224.info/PoSt/1121_400179.HtM
BbS.okane225.info/PoSt/1121_889738.HtM
BbS.okane226.info/PoSt/1121_776350.HtM
BbS.okane227.info/PoSt/1121_763138.HtM
BbS.okane228.info/PoSt/1121_169156.HtM
BbS.okane229.info/PoSt/1121_299897.HtM
BbS.okane230.info/PoSt/1121_174360.HtM
BbS.okane231.info/PoSt/1121_123427.HtM
BbS.okane232.info/PoSt/1121_101418.HtM
BbS.okane233.info/PoSt/1121_616048.HtM
BbS.okane224.info/PoSt/1121_243198.HtM
BbS.okane225.info/PoSt/1121_698460.HtM
BbS.okane226.info/PoSt/1121_676623.HtM
BbS.okane227.info/PoSt/1121_656960.HtM
BbS.okane228.info/PoSt/1121_755974.HtM
BbS.okane229.info/PoSt/1121_824770.HtM
BbS.okane230.info/PoSt/1121_058320.HtM
BbS.okane231.info/PoSt/1121_611372.HtM
BbS.okane232.info/PoSt/1121_942546.HtM
BbS.okane233.info/PoSt/1121_507029.HtM
BbS.okane224.info/PoSt/1121_950282.HtM
BbS.okane225.info/PoSt/1121_156607.HtM
BbS.okane226.info/PoSt/1121_724530.HtM
BbS.okane227.info/PoSt/1121_686391.HtM
BbS.okane228.info/PoSt/1121_126102.HtM
BbS.okane229.info/PoSt/1121_430590.HtM
BbS.okane230.info/PoSt/1121_435948.HtM
BbS.okane231.info/PoSt/1121_498208.HtM
BbS.okane232.info/PoSt/1121_014036.HtM
BbS.okane233.info/PoSt/1121_433015.HtM
BbS.okane224.info/PoSt/1121_054145.HtM
BbS.okane225.info/PoSt/1121_570949.HtM
BbS.okane226.info/PoSt/1121_059816.HtM
BbS.okane227.info/PoSt/1121_118281.HtM
BbS.okane228.info/PoSt/1121_653937.HtM
BbS.okane229.info/PoSt/1121_508375.HtM
BbS.okane230.info/PoSt/1121_141329.HtM
BbS.okane231.info/PoSt/1121_510248.HtM
BbS.okane232.info/PoSt/1121_832280.HtM
BbS.okane233.info/PoSt/1121_875193.HtM
BbS.okane224.info/PoSt/1121_243903.HtM
BbS.okane225.info/PoSt/1121_379371.HtM
BbS.okane226.info/PoSt/1121_286702.HtM
BbS.okane227.info/PoSt/1121_388457.HtM
BbS.okane228.info/PoSt/1121_514220.HtM
BbS.okane229.info/PoSt/1121_042638.HtM
BbS.okane230.info/PoSt/1121_434739.HtM
BbS.okane231.info/PoSt/1121_210926.HtM
BbS.okane232.info/PoSt/1121_563641.HtM
BbS.okane233.info/PoSt/1121_388210.HtM
BbS.okane234.info/PoSt/1121_379053.HtM
BbS.okane235.info/PoSt/1121_209039.HtM
BbS.okane236.info/PoSt/1121_545909.HtM
BbS.okane237.info/PoSt/1121_326789.HtM
BbS.okane238.info/PoSt/1121_419252.HtM
BbS.okane239.info/PoSt/1121_070393.HtM
BbS.okane240.info/PoSt/1121_481251.HtM
BbS.okane241.info/PoSt/1121_531161.HtM
BbS.okane242.info/PoSt/1121_492975.HtM
BbS.okane243.info/PoSt/1121_716031.HtM
BbS.okane234.info/PoSt/1121_464718.HtM
BbS.okane235.info/PoSt/1121_439805.HtM
BbS.okane236.info/PoSt/1121_005917.HtM
BbS.okane237.info/PoSt/1121_458463.HtM
BbS.okane238.info/PoSt/1121_699710.HtM
BbS.okane239.info/PoSt/1121_804104.HtM
BbS.okane240.info/PoSt/1121_429064.HtM
BbS.okane241.info/PoSt/1121_083252.HtM
BbS.okane242.info/PoSt/1121_274133.HtM
BbS.okane243.info/PoSt/1121_905521.HtM