动画SVG徽标

41 阅读2分钟

最近,我为 linhan 网站左上角的徽标进行了一次改版,用动画 SVG 替换了原来的静态图标:

灵感来源

一切要从 antfu 的个人网站说起。第一次访问他的网站时,我被深深吸引了:「这才是我理想中的个人网站!」

特别是他那个充满设计感的签名体 logo,看过他的实现教程后,我也跃跃欲试。虽然尝试了很多次,但总是差强人意。

直到遇见了 lxchapu 的这篇文章,如获至宝! 它完美解答了我的所有困惑。在此特别感谢这两位开发者的分享 🙏

实现步骤

1. 选择字体

首先访问 Google Fonts,在筛选器中选择 "Handwriting" 类别,这样就能专注浏览手写字体了。

Google Fonts 筛选手写字体转存失败,建议直接上传图片文件

image.png

2. 生成 SVG 路径

接下来使用这个很棒的工具:Google Font to SVG Path,它 能将 Google Fonts 字体转换为 SVG 路径。

image.png SVG 路径转换工具转存失败,建议直接上传图片文件

配置说明:

  • 字体大小保持默认的 100
  • 勾选 "Union" 选项
  • 取消勾选 "Non-Scaling Stroke"

小技巧:在字体下拉列表中,直接输入字体名可以快速定位到目标字体。

3. 获取 SVG 代码

<svg viewBox="0 0 297 80">
<g>
<path d="xxxxxxxxxxx" />
</g>
</svg>

接下来把它添加你的页面上,我们为它添加样式和动画。

CSS 如下:

.animated-signature path {
  stroke-dasharray: 2400;
  stroke-dashoffset: 2400;
  fill: transparent;
  animation: drawSignature 8s linear infinite both;
  stroke-width: 2px;
  stroke: black;
}

动画如下:

@keyframes drawSignature {
  0% {
    stroke-dashoffset: 2400;
  }
  15% {
    fill: transparent;
  }
  35%,
  75% {
    stroke-dashoffset: 0;
    fill: black;
  }
  90%,
  to {
    stroke-dashoffset: 2400;
    fill: transparent;
  }
}

其实只是用到了 troke-dasharray 属性和 stroke-dashoffset 实现路径动画。

后续我可能还会对我的徽标做更改,但目前来说已经可以满足我了

希望看到您的动画 SVG 徽标!欢迎光临 linhan