使用stroke-dasharray
和stroke-dashoffset
为SVG路径制作动画时
如this文章
<div>
<svg viewBox="0 0 100 100">
<path d="M10 80 C 40 10, 65 10, 95 80 S 150 150, 180 80"/>
</svg>
</div>
CSS:
div {
border-radius: 50%;
border: 10px solid red;
overflow: hidden;
}
path {
stroke-dasharray: 282 282;
stroke-dashoffset: 282;
transition: stroke-dashoffset 1s linear;
&.animate {
stroke-dashoffset: 0;
}
}
当我添加`animate类时,路径在所有浏览器中都是动画(Edge除外)。 Safari也会对路径进行动画处理,除了它的结束状态看起来有点奇怪
您可以看到整个svg
(红色圆圈中的边缘)
我尝试overflow: hidden
或z-index
但没有帮助。如果你稍微调整窗口大小,方块就会消失,一切看起来都正确。
有关如何解决此问题的任何建议吗?
答案 0 :(得分:1)
svg
缺少background-color
的样式。只需将background-color
与svg
上的body
相同:
<强> CSS:强>
svg{
background-color: #CA1; // should be the same as on the body
...
}