恐怕也有类似的问题,但我没有找到具体的解决方案,所以我创建了一个小提琴:
http://jsfiddle.net/Garavani/yrnjaf69/2/ http://jsfiddle.net/Garavani/yrnjaf69/2/
<div class= "category_item">
<div class= "cat_button">
<span class="title_cat">TEXT</span>
</div>
</div>
CSS:
.category_item {
position: absolute;
background-color: #999;
top: 100px;
left: 50px;
width: 200px;
height: 200px;
/* seems to be overwriten by animation keyframes */
-webkit-transition: -webkit-transform 0.215s ease-in-out;
transition: transform 0.215s ease-in-out;
cursor: pointer;
}
.category_item:hover {
-webkit-animation-name: easeBack;
animation-name: easeBack;
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
@-webkit-keyframes easeBack {
0% {
-webkit-transform: translateY(0);
transform: translateY(0);
}
50% {
-webkit-transform: translateY(-50px);
transform: translateY(-50px);
}
100% {
-webkit-transform: translateY(-30px);
transform: translateY(-30px);
}
}
.cat_button {
position: absolute;
width: 200px;
height: 55px;
bottom: 0;
border: 2px solid #fff;
color: #fff;
-webkit-transition: background 0.215s ease-in-out, border 0.215s ease-in-out, color 0.215s ease-in-out;
transition: background 0.215s ease-in-out, border 0.215s ease-in-out, color 0.215s ease-in-out;
}
.category_item:hover .cat_button {
background: #fff;
border-color: #fff;
color: #511c5b;
}
在此(简化的)动画中,除了鼠标离开整个框外,一切正常。动画从原始状态开始,但是突然。
基本的过渡时间(和易用性)被忽略,因为关键帧似乎具有更高的重要性并覆盖它。
我需要的是关键帧动画触发,并且当鼠标离开时它应该顺利返回到原始状态。
有没有解决办法
1)纯CSS
2)也许只用一些小的javascript?
预先感谢您的帮助和想法!
EDIT:
在实施托尼好心提供的解决方案后,这是正确的小提琴:
http://jsfiddle.net/yrnjaf69/40/ http://jsfiddle.net/yrnjaf69/40/
再次感谢托尼!
EDIT 2:
遗憾的是,还有一个问题。尽管我也在这个小提琴中添加了所有 -moz- 供应商,但带有关键帧的部分并未在 Firefox 上执行:
http://jsfiddle.net/dr6Ld0wL/1/ http://jsfiddle.net/dr6Ld0wL/1/
Why?
PS:据我目前测试,它甚至可以在 Opera(Beta)中运行。唯一抵抗的浏览器是 Firefox
EDIT 3:正确的(工作的)代码现在在这个小提琴中:
http://jsfiddle.net/dr6Ld0wL/16/ http://jsfiddle.net/dr6Ld0wL/16/
关键帧还需要在供应商前缀中明确划分。耶稣基督。那些前缀...