http://www.impressivewebs.com/css3-transitions-javascript/ Questo articolo ha una demo che mostra come è possibile mantenere l'animazione andando aggiungendo/rimuovendo una classe come necessario. Quello che potresti fare è mantenere la tua transizione attuale :hover
in posizione, ma per quelli con JavaScript, applica anche gli stessi stili a una classe pseudoHover
o qualcosa del genere.
Poi, con JavaScript (jQuery illustrato di seguito) aggiungere la classe quando si passa sopra l'elemento, esempio molto semplice qui: 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;
}
Il codice JavaScript è appena usato per aggiungere e rimuovere una classe come necassario per mantenere lo stato richiesto. Se non si dispone di JavaScript, solo il :hover
funzionerà.
Oltre a ciò, non riesco a vedere come lo faresti con solo CSS.