Il y a quelques problèmes ici. L'implémentation la plus simple est:
$("li").hover(function() {
$(this).find("span.meta").stop().fadeIn();
}, function() {
$(this).find("span.meta").stop().fadeOut();
});
qui fonctionnera en quelque sorte. Le problème est que les travées sont des éléments en ligne et fadeIn()
va le transformer en un élément de niveau bloc.
Note: mettre en stop()
il y a une bonne habitude à prendre, sinon vous pouvez obtenir des effets inattendus si vous tirez rapidement de plusieurs animations sur la même cible.
Vous pouvez le faire avec des classes trop:
$("li").hover(function() {
$(this).find("span.meta").removeClass("hidden");
}, function() {
$(this).find("span.meta").addClass("hidden");
});
avec:
span.hidden { display: none; }
mais vous perdez le fade in et fade out effets de cette façon. Il résout cependant le problème display: block
.
Vous pouvez alternativement animate()
le opacity
mais opacity
n'est pas vraiment pris en charge sur IE. Voir opacity:
compatibilité IE note
Si vous voulez opacité de travailler dans toutes les versions IE , l'ordre doit être:
.opaque {
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; // first!
filter: alpha(opacity=50); // second!
}
Si vous ne l'utilisez pas cet ordre , IE8-as-IE7 ne s'applique pas l'opacité, bien IE8 et un IE7 pur.
Ce code ressemble à ceci:
$("li").hover(function() {
$(this).find("span.meta").stop().animate({opacity: 0.0});
}, function() {
$(this).find("span.meta").stop().animate({opacity: 1.0});
});
Une question à laquelle vous devez répondre est: voulez-vous le contenu « méta » de ne pas être rendu ou tout simplement ne pas être visible? Il y a une différence. Pour ne pas être rendu est comme display: none
. Pour ne pas être visible est comme opacity: 0
qui pourrait potentiellement confondre l'utilisateur puisque le texte sera toujours sélectionnable. IMHO Je pense que vous feriez mieux d'accepter la nature de bloc de l'affichage ou d'utiliser une info-bulle (même une info-bulle riche) à la place.
Ceci ne sera pas masqué au passage du curseur. – SLaks
D'accord. Comme le montrent les autres réponses, il est assez facile de gérer l'événement de la souris. –