CSS @ -moz-关键帧动画不能正常工作在Firefox 18.0.1(css @-moz-ke

2019-07-19 08:14发布

CSS @ -moz-关键帧动画的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的错误?

Answer 1:

火狐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样式和动画名称更具描述性的名称。



Answer 2:

问题是,在这条线

-moz-animation-name: "animation_m";

谷歌浏览器 ,如果你写在双引号(“”),它需要作为标识符,但在Firefox它是考虑作为一个字符串动画的名字,而不是标识符,从而提动画名称,没有双引号?

    -moz-animation-name: animation_m;


文章来源: css @-moz-keyframes animation not working on firefox 18.0.1