Zasadniczo to, co próbuję zrobić, to nadać elementowi animację CSS, gdy uzyska klasę, a następnie odwrócić tę animację po usunięciu klasy bez odtwarzania animacji, gdy DOM renderuje.Czy można cofnąć animację css przy usuwaniu klasy?
Fiddle tutaj: http://jsfiddle.net/bmh5g/
Jak widać na skrzypcach, po najechaniu na przycisk "Hover Me", #item
trzepie na dół. Po odłożeniu przycisku myszkowania #item
po prostu znika. Chcę, aby #item
odwrócić kopię zapasową (najlepiej za pomocą tej samej animacji, ale w odwrotnej kolejności). czy to możliwe?
HTML:
<div id='trigger'>Hover Me</div>
<div id='item'></div>
CSS:
#item
{
position: relative;
height: 100px;
width: 100px;
background: red;
-webkit-transform: perspective(350px) rotateX(-90deg);
transform: perspective(350px) rotateX(-90deg);
-webkit-transform-origin: 50% 0%;
transform-origin: 50% 0%;
}
#item.flipped
{
animation: flipper 0.7s;
animation-fill-mode: forwards;
-webkit-animation: flipper 0.7s;
-webkit-animation-fill-mode: forwards;
}
@keyframes flipper
{
0% { transform: perspective(350px) rotateX(-90deg); }
33% { transform: perspective(350px) rotateX(0deg); }
66% { transform: perspective(350px) rotateX(10deg); }
100% { transform: perspective(350px) rotateX(0deg); }
}
@-webkit-keyframes flipper
{
0% { -webkit-transform: perspective(350px) rotateX(-90deg); }
33% { -webkit-transform: perspective(350px) rotateX(0deg); }
66% { -webkit-transform: perspective(350px) rotateX(10deg); }
100% { -webkit-transform: perspective(350px) rotateX(0deg); }
}
Javascript:
$('#trigger').on({
mouseenter: function(){
$('#item').addClass('flipped');
},
mouseleave: function(){
$('#item').removeClass('flipped');
}
})
Najlepsza odpowiedź do tej pory - nie sądzę, że można robić to, co chciałem. – Jake