【发布时间】:2021-05-27 08:37:06
【问题描述】:
我已经开始用 SVG 画一个甜甜圈。 由于某种原因,当我为更大的圆圈设置动画时,我的面具不起作用。(Chrome 版本 90.0.4430.212 上的错误)我只打算为更大的圆圈而不是整个 SVG/Doughnut 设置动画(我没有不希望较小的圆圈进行动画处理,我只希望较大的圆圈进行缩放)。如何使用蒙版为 SVG 元素设置动画?
https://codepen.io/markkkkkkk/pen/oNZWOOx
#myCircle {
animation-name: scaleKeyframe;
animation-duration: 1000ms;
animation-iteration-count: infinite;
transform-origin: 5px 5px;
animation-play-state: paused;
}
svg:hover #myCircle {
animation-play-state: running;
}
@keyframes scaleKeyframe {
from {
transform: scale(1);
}
to {
transform: scale(0.1);
}
}
<svg viewBox="0 0 40 10">
<mask id="myMask">
<rect width="100%" height="100%" fill="white" />
<circle cx="5" cy="5" r="2" fill="black" />
</mask>
<circle id="myCircle" cx="5" cy="5" r="4" mask="url(#myMask)" />
</svg>
【问题讨论】:
-
这看起来像是 Chrome/Blink 中的一个错误。它在 FF 中运行良好。请考虑reporting it to Chrome。如果您这样做,请在此处发布错误链接以供将来的读者阅读。
-
我不认为这是一个错误。但是谢谢,我已经在您提供的页面中报告了它。 bugs.chromium.org/p/chromium/issues/detail?id=1213310.
-
我仍然希望得到关于仅动画元素并保持蒙版稳定的答案。谢谢!
-
这个问题似乎已在最新的 Chrome (91.0.4472.77) 中得到修复。尝试更新。
-
是的,错误已修复。谢谢!