【发布时间】:2022-01-13 02:48:28
【问题描述】:
我是使用 CSS 制作 SVG 动画的新手,我正在尝试创建“眨眼”效果。这就是我设法做到的:
https://codepen.io/pablo-m/pen/jOGeMpJ.
(编辑 3:添加代码)
SVG
<svg id="composicion" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 571.8 761.82">
<g id="Ojito">
<rect x="190.37" y="288.55" width="192.7" height="91.76" fill="#606060" />
<ellipse id="outer-eye" cx="292.3" cy="335.43" rx="44.72" ry="30.01" fill="#3caa56" />
<circle id="inner-eye" cx="291.69" cy="334.82" r="18.38" fill="#efefef" />
</g>
</svg>
SCSS
#composicion {
#Ojito {
@keyframes inner-eye-blink {
0%,
82%,
95%,
100% {
clip-path: ellipse(75% 55%);
}
90% {
clip-path: ellipse(75% 0);
}
}
@keyframes outer-eye-blink {
0%,
80%,
100% {
ry: 30.01px;
}
90% {
ry: 1px;
}
}
& #outer-eye {
animation: outer-eye-blink 8s ease infinite;
}
& #inner-eye {
animation: inner-eye-blink 8s infinite;
}
}
}
动画在 Firefox v95.0.2 和 Safari v15.1 上运行良好。但是,在 Chrome/Chromium v97.0.4692.71(截至今天,最新版本)上却没有。看起来,每当我用 css 应用 clip-path 时,白色的 circle 就会消失。我还注意到这种行为在 Chrome/Chromium v96.0.4664.93 上不会发生。我做错了什么或在最新版本的 Chrome/Chromium 中做了什么改变?编辑:如果我做的一切都正确,有人知道解决方法吗?
这是我在 SO 中的第一个问题,所以如果我遗漏了任何细节,请告诉我。
谢谢!
编辑:我查看了 Chromium 的错误跟踪器,但没有发现任何相关问题。
【问题讨论】:
-
Chromium 的 bugtracker is here
-
...到目前为止,它没有显示任何相关信息。我可以确认
clip-path: ellipse(...)在 v97 中似乎不起作用。你没有做错任何事。您是否有兴趣找到解决方法,或者这是否回答了您的问题?请相应地编辑您的问题。 -
感谢您确认问题,@ccprog!是的,解决方法会很棒!我已经编辑了这个问题。 @RobertLongson 我在发布问题之前查看了 Chromium 的错误跟踪器,但我没有找到任何相关内容:/
-
听起来你需要在那个 bugtracker 中提出一个新问题。
-
@RobertLongson 会做的!