在 WebKit 中为 CSS 剪辑属性设置动画的问题

Posted

技术标签:

【中文标题】在 WebKit 中为 CSS 剪辑属性设置动画的问题【英文标题】:Problems animating the CSS clip property in WebKit 【发布时间】:2013-05-18 18:50:49 【问题描述】:

我四处寻找,但我找到的解决问题的方法似乎不起作用。

我是 CSS3 动画的新手,请多多包涵。

我正在使用 CSS3 创建一个简单的动画,它在 IE 和 Firefox 中运行良好,但在 Chrome 中无法运行。我尝试了几种解决方案,但似乎都没有。

<style type="text/css">
    html, body  height:100%; background-color: #ffffff;
    body  margin:0; padding:0; overflow:hidden; 

    #center 
        width:100%; 
        height:50%; 
        position: relative;
    




    @keyframes bounce 
          0%  clip: rect(0px, 0px, 150px, 0px); 
          100%  clip: rect(0px, 575px, 150px, 0px); 
       

    @-moz-keyframes bounce 
          0%  clip: rect(0px, 0px, 150px, 0px); 
          100%  clip: rect(0px, 575px, 150px, 0px); 
    

    @-webkit-keyframes bounce 
          0%  clip: rect(0px, 0px, 150px, 0px); 
          100%  clip: rect(0px, 575px, 150px, 0px); 
    

    div#barra 
            position:absolute;                      
            -webkit-animation: bounce 4s infinite alternate;        
            -moz-animation: bounce 4s infinite alternate;       
            animation:bounce 4s infinite alternate;
    

    table
        width:100%;
        height:100%;
    
    </style>
</head>

<script type="text/javascript">
    function setup()           
        var e = document.getElementById("barra");                                                       
        e.className = "bounce";
    
</script>

<body onload="setup()"> 
    <table>
        <tr>
            <td align="middle">                 
                <div id="wrapper"  style="display: inline-block; "> 
                    <div id="center">
                        <div id="barra"><img src="barra.png"></div>
                        <div id="logo" ><img src="logo.png"></div>
                    </div>
                </div>                  
            </td>
        </tr>
    </table>
</body>

谁能看到我做错了什么? 顺便说一句,要让它在移动设备上运行,我应该做些什么吗?

这是一个 Fiddle,显示问题:http://jsfiddle.net/yerathel27/pRWNv

【问题讨论】:

jsfiddle.net/yerathel27/pRWNv 这项工作是 Firefox 和 IE,但它在 Chrome 上没有动画,你能帮帮我吗? 好吧,我现在很确定问题出在 chrome 上的剪辑功能上,因为如果尝试不透明度,它会完美工作...有谁知道剪辑是否不使用@-webkit-keyframes? 【参考方案1】:

您需要在 WebKit 中的属性中添加一个初始剪辑才能使其工作。

请参阅以下小提琴:

http://jsfiddle.net/pRWNv/2/

我补充说:

    clip: rect(0px, 575px, 150px, 0px);

div#barra

【讨论】:

对不起 m8,我通常不使用论坛 :D【参考方案2】:

如果将clip 属性添加到它动画的元素样式中:

http://jsfiddle.net/trolleymusic/RJYFp/

【讨论】:

以上是关于在 WebKit 中为 CSS 剪辑属性设置动画的问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Firefox 60 或更早版本中为 SVG 剪辑路径设置动画时出现随机方块

动画剪辑:rect 属性?

当引用为 css 剪辑路径属性时,SVG 剪辑路径的位置不正确

如何在jQuery中为背景属性设置动画?

带有剪切路径的动画:插入在Safari中不起作用

css3的-webkit-animation动画执行后会变回原来的样子,怎么保留住动画最后的状态呢?