【发布时间】:2019-07-21 16:06:38
【问题描述】:
我在网上找到了这个 SVG 动画,它适用于 Chrome,但不适用于 Firefox。我找到了很多答案,添加了-webkit-,但仍然无法正常工作。我试图在 translateX() 中将百分比更改为像素,但没有。或者我做的不对。
https://codepen.io/anon/pen/MQRogz
HTML:
body {
background: #333;
padding: 2em;
}
svg {
display: block;
left: 50%;
max-width: 8em;
position: absolute;
top: 50%;
transform: translate(-50%,-50%);
}
#rect {
animation: slideOver 5s linear infinite;
}
@-webkit-keyframes slideOver {
0% {
-webkit-transform: translateX(0);
}
25% {
-webkit-transform: translateX(100%);
}
50% {
-webkit-transform: translateX(100%);
}
75% {
-webkit-transform: translateX(0);
}
}
@keyframes slideOver {
0% {
transform: translateX(0);
}
25% {
transform: translateX(100%);
}
50% {
transform: translateX(100%);
}
75% {
transform: translateX(0);
}
}
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 250 346">
<defs>
<clipPath id="clip-path">
<rect id="rect" x="0" y="0" height="346" width="250"/>
</clipPath>
</defs>
<path fill="#000" d="M1.9 0h245.9v58H1.9zM250.1 139.9l-43.8-43.8-81.2 81.2-81.3-81.2L0 139.9l81.2 81.2L0 302.3l43.8 43.9 81.3-81.2 81.2 81.2 43.8-43.9-81.2-81.2"/>
<path clip-path="url(#clip-path)" fill="#fff" d="M1.9 0h245.9v58H1.9zM250.1 139.9l-43.8-43.8-81.2 81.2-81.3-81.2L0 139.9l81.2 81.2L0 302.3l43.8 43.9 81.3-81.2 81.2 81.2 43.8-43.9-81.2-81.2"/>
</svg>
【问题讨论】:
-
你正在为 defs 设置动画