Est-il possible de retarder l'événement: Hover sans utiliser JavaScript? Je sais qu'il existe un moyen de retarder les animations, mais je n'ai rien vu sur le fait de retarder l'événement: hover.
Je construis un menu de type fils de suckerfish. J'aimerais simuler ce que fait hoverIntent sans ajouter le poids supplémentaire JS. Je préférerais traiter cela comme une amélioration progressive et ne pas faire de JS une condition préalable à l'utilisation du menu.
Exemple de balisage de menu:
<div>
<div>
<ul>
<li><a href="#">
<ul>
<li></li>
<li></li>
</ul>
</li>
<li>
<li>
</ul>
</div>
</div>
Voici la démo complète: http://jsfiddle.net/aEgV3/
Vous pouvez utiliser des transitions pour retarder le :hover
effet que vous voulez, s'il est basé sur CSS.
Par exemple
div{
transition: 0s background-color;
}
div:hover{
background-color:red;
transition-delay:1s;
}
cela retardera l'application des effets de survol (background-color
_ dans ce cas ) pendant une seconde.
Démo de retard sur le vol stationnaire:
div{
display:inline-block;
padding:5px;
margin:10px;
border:1px solid #ccc;
transition: 0s background-color;
transition-delay:1s;
}
div:hover{
background-color:red;
}
<div>delayed hover</div>
Démo de retard uniquement en survol sur:
div{
display:inline-block;
padding:5px;
margin:10px;
border:1px solid #ccc;
transition: 0s background-color;
}
div:hover{
background-color:red;
transition-delay:1s;
}
<div>delayed hover</div>
Extensions propres au fournisseur pour les transitions et Transitions CSS3 du W3C
div {
background: #dbdbdb;
-webkit-transition: .5s all;
-webkit-transition-delay: 5s;
-moz-transition: .5s all;
-moz-transition-delay: 5s;
-ms-transition: .5s all;
-ms-transition-delay: 5s;
-o-transition: .5s all;
-o-transition-delay: 5s;
transition: .5s all;
transition-delay: 5s;
}
div:hover {
background:#5AC900;
-webkit-transition-delay: 0s;
-moz-transition-delay: 0s;
-ms-transition-delay: 0s;
-o-transition-delay: 0s;
transition-delay: 0s;
}
Cela ajoutera un délai de transition, qui sera applicable à presque tous les navigateurs.
Pour un aspect plus esthétique :) peut être:
left:-9999em;
top:-9999em;
position pour .sNv2 .nav UL
peut être remplacé par z-index:-1
et z-index:1
pour .sNv2 .nav LI:Hover UL