纯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-dasharraystroke-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

#牛客AI配图神器#

全部评论

相关推荐

11-04 19:05
已编辑
东莞城市学院 单片机
不知道怎么取名字_:你这个要实习两年?哪有这么久的,感觉就是即使你毕业了,但还按实习的话,是不是不用给你缴社保公积金啥的
点赞 评论 收藏
分享
11-07 11:05
已编辑
西安电子科技大学 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务