我有一個css轉換,可以在懸停時移動一個元素,也可以在懸停時旋轉元素。動畫的延遲等於轉換時間,以便在轉換到正確的位置後,動畫開始。然而,它很好用,但是,當我們關閉鼠標時,動畫會停止,但不會轉換回來。動畫結束後的CSS過渡
在鼠標關閉並且動畫結束之後,是否有可能讓它恢復?
這裏你可以看到一個例子:http://codepen.io/jhealey5/pen/zvXBxM
簡化代碼在這裏:
div {
width: 200px;
height: 200px;
margin: 40px auto;
background-color: #b00;
position: relative;
&:hover {
span {
transform: translateY(-60px);
animation-name: rotate;
animation-duration: 1s;
animation-delay: .5s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
}
}
span {
position: absolute;
width: 20px;
height: 20px;
background-color: #fff;
bottom: 10px;
left: 0;
right: 0;
margin: auto;
transition: .5s;
}
@keyframes rotate {
from {
transform: translateY(-60px) rotate(0);
}
to {
transform: translateY(-60px) rotate(-90deg);
}
}
我使用的是稍舊的Chrome版本,它也不會在懸停時轉換(動畫效果很好)。 – Harry
而且,我認爲它在Chrome上不起作用的原因是因爲動畫和轉換都應用於相同的屬性(如[在此討論](http://stackoverflow.com/questions/33636375/css-keyframe-animation -breaks - 過渡時-兩者-被施加-上相同屬性/ 33652438#33652438))。我認爲你最好同時使用動畫本身。 – Harry
或者,另一種選擇是將「bottom」用於「transition」和「animation」,僅用於[rotate],就像[this snippet]中一樣(http://codepen.io/hari_shanx/pen/ojOLeX)。我不確定這種方法是否適合您的需求。讓我知道如果它,我會添加爲答案。 – Harry