11
votes

JQuery - Animate / Slide à Hauteur: 100%

J'ai un code siple ici:

$('.aktualita_sipky').toggle(function() {
    $(this).parent().find('.aktualita_content').animate({ 
        height: "100%",
      }, 1500 );
}, function() {
    $(this).parent().find('.aktualita_content').animate({ 
        height: "120px",
      }, 1500 );
});


0 commentaires

3 Réponses :


10
votes

Peut-être que vous pourriez faire quelque chose comme: xxx

http: // docs.jquery.com/css/height


1 commentaires

Si vous souhaitez rendre compte du rembourrage, des bordures et des marges, utilisez OUTERHEIGHT (VRAI) au lieu de la hauteur (). ( API.JQUERY.com/OUTERHEIGHT )



2
votes

Ma solution de contournement Pour cela, c'était d'ajouter les hauteurs des éléments de l'enfant dans la DIV, ajoutant un peu à rendre compte des marges: xxx


1 commentaires

Si vous avez changé cela pour utiliser OUTERHEIGHT (VRAI) à la place, je voudrais éteindre cette réponse. L'ajout d'une hauteur arbitraire pour les marges est un peu bâclée ... {ENFANTSHEight + = $ (Ceci) .outerHeight (vrai); } ( API.JQUERY.com/OUTERHEIGHT )



0
votes

J'ai trouvé ce post pendant la recherche d'une solution moi-même et Karim79 avait la grande suggestion d'utiliser une variable et la fonction hauteur () code>.

Pour moi, je ne commence pas avec la hauteur à 100% car j'ai une hauteur préréglée définie dans ma feuille de style. Donc, ce que je fais dans la fonction pour développer est que je fais une variable qui a une requête pour reculer à l'élément spécifique que je veux développer et modifier la hauteur CSS à 100% et renvoyer la hauteur à une variable. Ensuite, je réglais le CSS pour la hauteur de la hauteur (je suppose que j'aurais pu être utilisé pour Vars raconté la hauteur prédéfinie d'origine également en cas d'édition que je modifie le CSS à l'avenir), puis exécutez la fonction d'animation à l'aide de la valeur de la hauteur. P>

function expandAlbum (){
    var fullHeight = jQuery(this).prev('.albumDropdown').css('height' , '100%').height();
    jQuery(this).prev('.albumDropdown').css('height' , '145px');
    jQuery(this).prev('.albumDropdown').animate({'height' : fullHeight}, 1000, function(){jQuery(this).stop();});
    jQuery(this).html('close');
}


2 commentaires

FYI: Au lieu de jQuery (ceci), vous pouvez utiliser $ (this) . $ = jQuery


En outre, cela fonctionnerait également: var fullheight = $ (this) .prev ("albumdropdown"). Afficher (). Outerheight (vrai);