Dans ma page, j'ai un tas (environ 30) nœuds dom qui devraient être ajoutés invisibles, et fondus lorsqu'ils sont complètement chargés.
Les éléments ont besoin d'un affichage: style bloc en ligne.
Je voudrais utiliser la fonction jquery .fadeIn (). Cela nécessite que l'élément ait initialement un affichage: aucun; règle pour le cacher dans un premier temps. Après le fadeIn (), les éléments hors course ont l'affichage par défaut: inherit;
Comment puis-je utiliser la fonctionnalité de fondu avec une valeur d'affichage autre que inherit?
$("div").fadeIn().css("display","inline-block");
la source
$("div").fadeIn().css("display","");
$("div").fadeIn("400", function(){ $(this).css("display","inline-block"); });
pour être sûr que display: inline-block est terminé lorsque le fadein est terminéJuste pour étoffer la bonne idée de Phil, voici un fadeIn () qui charge des fondus dans chaque élément avec la classe .faded à son tour, convertie en animate ():
Vieux:
Nouveau:
J'espère que cela aidera un autre newb jQuery comme moi :) S'il y a une meilleure façon de le faire, dites-le nous!
la source
La réponse de Makura n'a pas fonctionné pour moi donc ma solution était
hide
s'applique immédiatementdisplay: none
mais avant cela, il enregistre la valeur d'affichage actuelle dans le cache de données jQuery qui sera restauré par les appels d'animation suivants.Donc, les
div
départs statiquement définis commedisplay: none
. Ensuite, il est définiinline-block
et immédiatement masqué pour être effacé versinline-block
la source
Selon la documentation jQuery pour
.show()
,Donc ma solution à ce problème était d'appliquer une règle css à un affichage de classe: inline-block sur l'élément, puis j'ai ajouté une autre classe appelée "hide" qui applique display: none; Quand je suis
.show()
sur l'élément, il a montré en ligne.la source
#el{display:inline-block;display:none;}
, puis exécutez,$('#el').fadeIn();
vous obtenez un bloc en ligne. Mais ce n'est pas le cas.Cela fonctionne même avec le
display:none
preset par css. Utilisation(et aussi
$('#element').fadeOut().removeClass('displaytype');
)avec configuration en CSS:
Je considère cela comme une solution de contournement, car je pense que cela
fadeIn()
devrait fonctionner de manière à supprimer simplement la dernière règle -display:none
lorsqu'elle est définie sur,#element{display:inline-block;display:none;}
mais elle supprime les deux.la source