2013-12-11 11 views
6

Sto cercando di ottenere un'animazione dell'altezza che funzioni utilizzando Angular JS 1.2. Ho un plunker qui che ha l'animazione di lavoro per la chiusura della macchina:AngularJS 1.2 ng-mostra l'animazione dell'altezza

http://plnkr.co/edit/YVtnXgjO3Evb6tz5DJOp?p=preview

Con il bit chiave è questa CSS qui:

.accordion-body { 
    height: 100px; 
    -webkit-transition: 0.5s linear all; 
    transition: 0.5s linear all; 
} 
.accordion-body.ng-hide-add, 
.animate-show.ng-hide-remove { 
    display: block !important; 
} 

.accordion-body.ng-hide-add{ 
} 

.accordion-body.ng-hide-remove{ 
} 
.accordion-body.ng-hide { 
    height:0; 
} 

Ma io non riesco a capire come per farlo funzionare per aprendo l'articolo. Ovviamente sto facendo qualcosa di braindead - cosa mi manca?

risposta

10

ottenuto che funziona con il seguente CSS:

.accordion-body { 
    height: 100px; 
    -webkit-transition: 0.5s linear all; 
    transition: 0.5s linear all; 
} 
.accordion-body.ng-hide-add, 
.accordion-body.ng-hide-remove { 
    display: block !important; 
    height: 0px; 
} 

.accordion-body.ng-hide-remove.ng-hide-remove-active { 
    height: 100px; 
} 
.accordion-body.ng-hide-add{ 
    height: 100px; 
} 
.accordion-body.ng-hide-add.ng-hide-add-active { 
    height: 0; 
} 

incasinato un nome di classe è tutto.

+0

Grazie! Qualche suggerimento su come farlo se non si conosce l'altezza? Ho un po 'di lavoro usando l'altezza della linea come proprietà da animare, ma sembra un po' strano. Se imposto l'altezza su "auto", funziona in chiusura, ma non in apertura. Vedi http://plnkr.co/edit/WYYFLff8Bvrf7sRuKfSK?p=preview. –

+0

Prova a cercare in un valore javascript chiamato scrollheight. Dovrebbe ottenere l'altezza totale dell'elemento div/invece di ciò che è appena visualizzato. Avresti cura delle altezze dinamiche in modo angolare, non css, che è più lavoro per te. – Vinny

+0

Puoi aggiungere il codice per il supporto di tutti i browser? – vlio20