我正在尝试使用CSS3为SVG制作动画。你可以在这里看到一个例子 -
http://codepen.io/MyXoToD/pen/vBlfs
然而,这个示例与Chrome中的应用完全一样,但是当我在我的网站上实现代码时,它不会运行代码。但它在Firefox中运行得非常好。当我在Chrome中检查元素时,它会在动画属性中添加一行,并显示错误消息“无效的属性值”。然而,当我看到这个例子时,我会做同样的事情而且我没有得到同样的错误。
我有点困惑,我已经调试了一段时间了。它不能是我的Chrome版本(版本39.0.2171.95米)。
虽然经过一些小修改后我的代码几乎完全相同,但这是我的代码段:
img {
max-width: 80%;
width: 100%;
//position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
opacity: 0;
animation-name: show;
animation-delay: 6s;
animation-duration: 1s;
animation-fill-mode: forwards;
animation-iteration-count: 1;
animation-timing-function: linear;
}
svg {
max-width: 80%;
width: 100%;
//position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
path {
stroke-width: 2;
stroke: black;
animation-fill-mode: forwards;
animation-iteration-count: 1;
animation-name: draw;
animation-timing-function: linear;
animation-duration: 3s;
&.bird {
stroke: black;
stroke-dasharray: 2810;
stroke-dashoffset: 2810;
}
}
}
}
@keyframes draw {
to {
stroke-dashoffset: 0;
}
}
@keyframes show {
to {
opacity: 1;
}
}
答案 0 :(得分:2)
您已在Codepen上启用了--prefix-free模式。它允许您在任何地方仅使用未加前缀的CSS属性。它在幕后工作,只在需要时将当前浏览器的前缀添加到任何CSS代码中。
例如,在Codepen上你会看到:
animation-name: show;
而不是:
animation-name: show;
-webkit-animation-name: show;
-moz-animation-name: show;