纯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配图神器#

全部评论

相关推荐

昨天 03:09
已编辑
南昌大学 golang
bg普211本,走的golang后端方向。找实习经历:最近一个月投了一些日常,面了4场,都是一面挂。简历包装成分比较多,当时这个简历准备了两个星期,问AI解决什么问题用什么技术,跟其他技术对比优缺点在哪,等等。但是面试的时候一些基础的八股都答的模模糊糊,然后项目延伸的场景题一点不会。有点害怕面试,面前焦虑…本文可能带点碎碎念…省流就是因为每周面心态不行,不知道先学什么以及三天打鱼两天晒网…现在的主要问题,一个是只能依靠即时满足无法撑过枯燥的学习,另一个是难以调整心态,面试焦虑。个人背景:主包其实本来是大一开始学后端的,但是当时不知道合适的学习方法(学习路线和借助AI),也社恐不太敢问学长,走了很多弯路,也没有花很多时间在后端上面(按兴趣学的只有大二上学期写了opencamp的rustlings和learning-cxx,还有玩steam的图灵完备,剩余时间比较摆烂)。结果就是现在这鬼样子,只会写crud,差不多就是会gin&nbsp;gorm基础,会写注册登录和简单业务接口,写过几种项目结构和设计模式。缺乏自己延展的能力。计算机基础:也相当差,之前大二学的计网全忘光了,操作系统60飘过。虽然大一的时候打算法竞赛(也没什么成绩就是,省二等奖收集者),但到现在一年半没碰了,就只有dfs,并查集啥的一些很基础的题目随便写,hot100链表因为竞赛没练过相当不熟练。大二下的时候,数据库课看八股,又困又累,什么都没看进去,后面自然又是全忘光了。现在我虽然有了个概览,知道后端除了crud有缓存、微服务、分布式、消息队列等等东西,知道后端架构设计是要做权衡,性能、一致性、容灾,需要通过实验测出具体的数据来做决策,但是具体的方案不会,看基础知识是真看不进去。现在的主要问题,一个是只能依靠即时满足无法撑过枯燥的学习,另一个是难以调整心态。我高中以前一直是优等生,能够享受大部分题目都会的快感,能明确地有信心自己能做出来,解题过程需要进行推理,并且做完立刻就能得到正确反馈,其中的失败调整过程长度也在可接受范围内。(喜欢写rustlings一类的语言lab和玩《图灵完备》大概也是因为这个吧…)而现在的情景相当于我成了高三但是基础知识基本不会的状态,比我当年(会基础知识只是差做题)差多了。在这种情况下去面试也是相当痛苦,因为面试是不知道范围的。每次准备都不知道先看什么,学也学不进去。明明知道面试只是为了了解真实会问什么,但是还是很焦虑,拧巴心态。学长说去投简历面试实践是为了了解自己在哪里,别人在哪里,市场在哪里,但是我似乎还没有找到收敛的下限,只是一直失败…但是我也不能确定不面试就能学进去啊,因为我大二暑假是真的一点代码都不想碰,相当烦躁,八股也不想看。现在甚至连稍微花点时间的算法题(不能即时反馈的)都不想写了。还在纠结要不要整块时间搓项目压测试试,感觉会非常花时间。可能我项目管理也是一坨。
圆规学java:27届不着急,边投边学,克服恐惧感,你现在不敢面试,你为什么认为你暑期就勇敢了,你现在的进度其实还很早,我当时大三下才开始实习,我也很焦虑着急。永远没有准备好的时候,当下努力就是最好的加油!
点赞 评论 收藏
分享
程序员牛肉:你这简历有啥值得拷打的?在牛客你这种简历一抓一大把,也就是个人信息不一样而已。 关键要去找亮点,亮点啊,整个简历都跟流水线生产出来的一样。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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