css - SVG 动画没有按预期工作

标签 css svg css-animations svg-animate

我正在处理 SVG 动画,我想使用 svg stroke 动画绘制一个矩形。 这是我的代码。

.path {
  stroke-dasharray: 1400;
  stroke-dashoffset: 100;
  animation: dash 5s linear infinite;
}

@keyframes dash {
  to {
    stroke-dashoffset: 0;
  }
}
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="500px" height="500px" viewBox="100 300 500 600" enable-background="new 0 0 340 333" xml:space="preserve"><path id="XMLID_348_" class="st0 laptop-outer path" d="M523.9,704.5H119.3c-9.1,0-16.5-7.1-16.5-15.8V449.5c0-14.1,12-25.6,26.8-25.6h384.2     c14.8,0,26.8,11.5,26.8,25.6v239.1C540.5,697.4,533.1,704.5,523.9,704.5z M129.5,425.5c-13.9,0-25.2,10.8-25.2,24.1v239.1 c0,7.9,6.7,14.3,15,14.3h404.6c8.2,0,15-6.4,15-14.3V449.5c0-13.3-11.3-24.1-25.2-24.1H129.5z" stroke="#000000" stroke-width="4" /></svg>

我想从一个点到最后一个点绘制一个矩形,但它没有像我预期的那样工作。

最佳答案

您可能会考虑更简单的 SVG 路径:

path {
  fill: transparent;
  stroke: #000;
  stroke-dasharray: 212;
  stroke-dashoffset: 212;
  animation: dash 5s linear forwards;
}

@keyframes dash {
  to {
    stroke-dashoffset: 0;
  }
}
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' width='200'>
  <path stroke-width=0.5 d='M0 16 L0 32 C0 48 0 48 16 48 L48 48 C64 48 64 48 64 32 L64 16 C64 0 64 0 48 0 L16 0 C0 0 0 0 0 16 Z' />
</svg>

关于css - SVG 动画没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50449006/

相关文章:

html - 如何在 ionic 4 页面加载上实现 Celebration Confetti 动画?

jquery - javascript touchstart事件触发css变换动画

javascript - 图像地板褪色颜色与网页背景颜色混合?

css - 将图像左上、居中和右下对齐

javascript - 根据数据库值更改记录的颜色,extjs4.2

php - 带有查询字符串的 HTTP 缓存 URL

html - 居中 flex 布局而不收缩列

browser - 对 svg 过滤器的特征检测支持

javascript - 来自 csv 的 D3 中的 svg 行(作为单独的行而不是一行)-不显示

html - 为什么我的动画伪元素不能与输入元素一起使用?