Firefox 18.0.1上的css @ -moz-keyframes动画不起作用,
我已经检查了该动画的先前版本(忘记了先前的版本号),它在起作用,
这是动画
<html> <head> <style type="text/css"> @-webkit-keyframes animation { 0% { -webkit-transform:translate(100px,100px) scale(1); } 50% { -webkit-transform:translate(00px,00px) scale(2); } 100% { -webkit-transform:translate(100px,100px) scale(1); } } @-moz-keyframes animation_m { 0% { -moz-transform:translate(100px,100px) scale(1); } 50% { -moz-transform: translate(00px,00px) scale(2); } 100% { -moz-transform:translate(100px,100px) scale(1); } } .cc1{ -webkit-animation-name: "animation"; -webkit-animation-duration: 2s; -webkit-animation-timing-function: linear; -moz-animation-name: "animation_m"; -moz-animation-duration: 2s; -moz-animation-timing-function: linear; } #id1,#ci1{ position:absolute; top:0px; left:0px; } </style> <script type="text/javascript"> window.onload=function(){ var e=document.getElementById("ci1"); var ctx=e.getContext("2d"); ctx.fillStyle="#f00"; ctx.fillRect(0,0,90,90); } </script> <body> <div id="id1" class="cc1"> <canvas width="100" height="100" id="ci1" ></canvas> </div> </body> </html>
是Firefox错误吗?
Firefox18(以及Opera,IE10和不久的将来的许多其他产品)期望W3C属性没有供应商前缀。确保添加以下块:
@keyframes animation_m { 0% { transform:translate(100px,100px) scale(1); } 50% { transform: translate(00px,00px) scale(2); } 100% { transform:translate(100px,100px) scale(1); } } .cc1 { animation-name: animation_m; animation-duration: 2s; timing-function: linear; }
请注意,-moz-transform属性也已更改为transform。
-moz-transform
transform
对于所有带前缀的CSS属性,您应 始终包括无供应商前缀的版本。我还建议给您的CSS样式和动画名称更多描述性的名称。