为什么我的CSS:悬停@keyframes动画不起作用?

时间:2013-06-14 12:16:20

标签: html css3 cross-browser css-animations

我是新手。为什么这段代码不起作用? 我想让鸟儿飞翔。

我的HTML:

<img src="http://dl.dropboxusercontent.com/u/105046436/tw.png" />
<br>
<div class="twitter-bird"></div>

我的CSS:

.twitter-bird {
    background-image: url(http://dl.dropboxusercontent.com/u/105046436/tw.png);
    display: inline-block;
    height: 38px;
    width: 37.5px;
}

.twitter-bird:hover {
    animation: fly 0.2s steps(3) 0 infinite;
}

@keyframes fly {
    from { background-position: 0 0; }
    to { background-position: -112.5px 0; }
}

JSFiddle:http://jsfiddle.net/6qHMG/

我想要的是什么:

我想更改图片的背景位置。

会发生什么:

悬停时图像位置不会改变。

编辑: 我认为背景图像位置没有正确改变。背景位置似乎没有改变。如何在background-position:中设置@keyframes fly

1 个答案:

答案 0 :(得分:8)

这里是:

你必须添加供应商前缀

.twitter-bird {
    height: 38px;
    width: 37.5px;
    background-image: url("http://dl.dropboxusercontent.com/u/105046436/tw.png");
}

.twitter-bird:hover { 
    -webkit-animation: fly .4s steps(3) infinite;
       -moz-animation: fly .4s steps(3) infinite;
        -ms-animation: fly .4s steps(3) infinite;
         -o-animation: fly .4s steps(3) infinite;
            animation: fly .4s steps(3) infinite;
}

@-webkit-keyframes fly {
   from { background-position:    0px; }
     to { background-position: -112.5px; }
}

@-moz-keyframes fly {
   from { background-position:    0px; }
     to { background-position: -112.5px; }
}

@-ms-keyframes fly {
   from { background-position:    0px; }
     to { background-position: -112.5px; }
}

@-o-keyframes fly {
   from { background-position:    0px; }
     to { background-position: -112.5px; }
}

@keyframes fly {
   from { background-position:    0px; }
     to { background-position: -112.5px; }
}

小提琴:http://jsfiddle.net/6qHMG/4/