http://www.impressivewebs.com/css3-transitions-javascript/ Este artículo tiene una demostración que muestra cómo puede mantener activa la animación agregando/eliminando una clase cuando lo necesite. Lo que podría hacer es mantener su transición actual :hover
en su lugar como un retroceso, pero para aquellos con JavaScript, también apliquen los mismos estilos a una clase pseudoHover
o algo así.
Luego, con Javascript (jQuery muestra a continuación) añadir la clase cuando se pasa sobre el elemento, ejemplo muy básico aquí: http://jsfiddle.net/btg5y/
HTML:
<div id="list">
<p>Hover over me!</p>
<ul>
<li>item 1</li>
<li>item 2</li>
</ul>
</div>
<p>Click anywhere here to remove the hover</p>
JS:
$('#list').hover(function() {
$('ul', this).addClass('pseudoHover');
});
$(document).click(function() {
$('#list ul').removeClass('pseudoHover');
});
CSS:
ul {
background-color: #F00;
height: 0;
overflow: hidden;
transition: height 1s;
-webkit-transition: height 1s;
}
#list:hover ul, .pseudoHover {
height: 50px;
}
JavaScript simplemente se usa para agregar y eliminar una clase como necassary para mantener el estado que necesita. Si no tiene JavaScript, entonces solo funcionará el :hover
.
Aparte de eso, no puedo ver cómo harías esto solo con CSS.