Dans jQuery, comment animer la propriété CSS "max-height"?
Je peux facilement animer le "opacité" de la propriété
$("#blah").animate({ opactiy: 0.5}, 1000);
Comment puis-je animer le max-height propriété css... exemple:
$("#blah").animate({ "max-height": 350}, 1000);
(un indice, que le code ne fonctionne pas)
EDIT: Pour répondre aux questions ci-dessous:
- Il y a plusieurs images l'ensemble de la classe css "blah"
- Les images sont de diverses tailles, MAIS ils ont tous un max-height: 100px
- Lorsqu'un utilisateur passe sur une image, je le veux pour animer le max de hauteur (donc en douceur de l'onu-limiter la hauteur)
source d'informationauteur Timothy Khouri
Vous devez vous connecter pour publier un commentaire.
Cette question est d'obtenir un peu vieux, mais voici comment je l'ai résolu en utilisant la base de jQuery, dans le cas où quelqu'un d'autre a besoin d'une solution simple.
Dans mon cas, j'ai une liste de blogs qui sont d'abord rendus à la page avec un
max-height
qui ne montre que les 4 premières lignes de texte, le reste étantoverflow: hidden
. J'ai un bouton développer/réduire qui permet de passer l'article à partir de sa forme aplatie à l'élargissement (affiche en plein écran) et de retour à nouveau.J'ai d'abord essayé d'animer le max-height directement la propriété et, comme vous l'avez découvert au-dessus, cela ne fonctionne pas. J'ai aussi essayé avec les transitions css avec le même résultat décevant.
J'ai aussi essayé juste un réglage à un très grand nombre comme "1000em", mais de ce fait les animations sont aussi stupides qu'il était littéralement en interpolant à de telles une grande valeur (comme vous le souhaitez).
Ma solution utilise scrollHeight, qui est utilisé pour déterminer la hauteur de chaque histoire une fois que la page est chargée comme suit:
À faire de même avec les images, je voudrais juste envelopper dans une div extérieure qui est ce que vous allez définir le
max-height
etoverflow:hidden
tout comme j'ai utilisé de la div.l'histoire ci-dessus.J'ai couru dans la même chose.
La réponse est d'utiliser
"maxHeight"
plutôt que"max-height"
...Je pense que vous devriez animer la propriété height de la première et lorsque l'animation est terminée remplacer régler la hauteur de l'auto et reset max-hauteur de ce que vous avez besoin qu'il soit:
Je suis confus par l'exigence ici. Si vous êtes désireux d'animer quelque chose sans doute il doit être égale à la hauteur maximale déjà. Je ferais une déclaration à la case d'un élément de la hauteur est égale à sa hauteur maximum, si donc, supprimer le max-height et puis d'animer la hauteur. Doit être le même effet
Pur CSS solution
HTML
css
DÉMO
Profitez-en!
OK, donc il n'y a aucun moyen de faire ce que je voulais... Donc j'ai dû faire mon propre fonction pour générique de "l'animation" de la fonction (de x à y dans d millisecondes).
J'ai écrit un post de blog décrivant la façon dont je l'ai fait ici: Générique "Animer" la fonction avec jQuery
J'ai inclus une démonstration de ce qu'il peut faire aussi bien. La démo lien est au bas de l'article, ou pour les impatients, il vous suffit de cliquer sur ici.