0

0

cssSVG图标想要路径描边效果如何做_利用stroke-dasharray与keyframes实现描边动画

P粉602998670

P粉602998670

发布时间:2025-12-17 13:00:09

|

930人浏览过

|

来源于php中文网

原创

SVG路径描边动画的核心是用stroke-dasharray设路径总长、stroke-dashoffset从全长渐变至0,配合@keyframes实现“画线”效果;需确保路径有stroke、使用内联SVG、计算getTotalLength(),并用forwards保持终态。

csssvg图标想要路径描边效果如何做_利用stroke-dasharray与keyframes实现描边动画

SVG 图标实现路径描边动画,核心是用 stroke-dasharray 配合 stroke-dashoffset 控制“虚线长度”和“起始偏移”,再通过 CSS @keyframes 动画驱动偏移变化,让描边看起来是从头到尾“画出来”的效果。

1. 确保 SVG 路径有 stroke 属性

描边动画只对带 stroke 的路径生效。原始图标若只有 fill,需先转为描边(或保留 fill 但额外加 stroke):

  • 在 SVG 中给 添加 stroke="#000"stroke-width="2"fill="none"
  • 确保路径是闭合或有意图的开放路径(如箭头、勾号),否则动画起点/终点可能不自然
  • 推荐使用内联 SVG(而非 cssSVG图标想要路径描边效果如何做_利用stroke-dasharray与keyframes实现描边动画),才能用 CSS 控制样式和动画

2. 计算并设置 stroke-dasharray 和 stroke-dashoffset

stroke-dasharray 定义虚线模式,设为 总路径长度 可让整条路径变成“一条实线”;stroke-dashoffset 控制这条线从哪开始显示。动画就是让 offset 从“全长”变到“0”:

  • 用 JS 或工具(如 SVGOMG、浏览器控制台)获取路径的 getTotalLength() 值,比如得到 120
  • CSS 中设:stroke-dasharray: 120;stroke-dashoffset: 120;
  • 初始状态:偏移 120 → 线完全不可见;动画结束:偏移 0 → 线完整显示

3. 用 keyframes 写描边动画

定义一个从大 offset 到 0 的动画,作用于 stroke-dashoffset

Moonbeam
Moonbeam

经过专业培训的 AI 写作助手,可帮助您撰写各类长篇内容。

下载

立即学习前端免费学习笔记(深入)”;

@keyframes draw {
  to { stroke-dashoffset: 0; }
}
.path {
  stroke-dasharray: 120;
  stroke-dashoffset: 120;
  animation: draw 1.2s ease-in-out forwards;
}
  • forwards 保证动画停在最后一帧(即描完不回退)
  • 可加 animation-delay 控制多个路径的先后顺序(适合多路径图标)
  • 若想“反向画”(从末尾开始),把 stroke-dashoffset 初始值设为 0,动画改为 to { stroke-dashoffset: -120; }

4. 多路径协调与优化技巧

复杂图标常含多个 ,每条路径可独立描边:

  • 给每条 path 加 class(如 .path-1, .path-2),分别设置不同 stroke-dasharray 和延迟
  • stroke-linecap: roundsquare 让端点更柔和或利落
  • 避免在动画中改变 stroke-widthstroke 颜色——会触发重排,影响性能;颜色变化建议用 transition 单独处理

基本上就这些。关键不是参数多复杂,而是理清“dasharray 定长度、dashoffset 控显隐、动画推 offset”这个逻辑链。试一次就知道,不复杂但容易忽略路径长度计算这一步。

相关专题

更多
css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

524

2023.06.15

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

268

2023.07.27

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

761

2023.07.28

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

539

2023.08.01

css字体颜色
css字体颜色

CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

762

2023.08.10

什么是css
什么是css

CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

606

2023.08.10

css三角形怎么写
css三角形怎么写

CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

561

2023.08.21

css设置文字颜色
css设置文字颜色

CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

397

2023.08.22

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3万人学习

CSS教程
CSS教程

共754课时 | 23万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号