css @-moz-keyframes анимация не работает в Firefox 18.0.1
css @-moz-keyframes анимация в Firefox 18.0.1 не работает,
Я проверил эту анимацию в предыдущей версии (забыл версию предыдущего номера), она работала,
Вот анимация
<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?
2 ответа
Firefox 18 (и 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
,
Вы должны всегда включать версию без префикса поставщика для всех свойств CSS с префиксом. Я также рекомендовал бы дать вашим стилям CSS и названиям анимации более описательные имена.
Проблема в этой линии
-moz-animation-name: "animation_m";
в Google Chrome, если вы пишете название вашей анимации в двойных кавычках (""), оно воспринимается как идентификатор, но в Firefox это считается строкой, а не идентификатором, поэтому упоминайте имя анимации без двойных кавычек...
-moz-animation-name: animation_m;