2016-07-01 75 views
6

Attualmente sto provando a implementare alcune animazioni nel mio sito Angular2 utilizzando il componente integrato ng2 animations. Finora ho lavorato su Angular 2 Developer Guide - Animations fornito nella documentazione. Detto questo, mi sono imbattuto in alcune domande che speravo che la comunità SO potesse fornire assistenza. La mia prima domanda/problema che ho riscontrato è che l'animazione (da quello che posso dire) non viene eseguita su caricamento della pagina. Sembra funzionare perfettamente bene se si passa a una vista e poi si torna alla vista con l'animazione. Questo è il codice Attualmente sto usando per l'animazione in questione (posso fornire l'intero componente se lo si desidera):Angular2 Animation on Load e Transition Page

animations: [ 
    trigger('kissState', [ 
    state('in', style({opacity: 1})), 
    transition('void => *', [ 
     style({opacity: 0}), 
     animate('250ms ease-in-out') 
    ]), 
    transition('* => void', [ 
     animate('250ms ease-in-out', style({opacity: 0})) 
    ]) 
    ]) 
] 

Ho avuto l'impressione che il void => * sarebbe impostare il mio elemento DOM per opacity:0 e una volta che inserito in alla vista sarebbe opacity:1. Un altro problema che ho riscontrato è che le mie navigazioni non sembrano funzionare sui dispositivi mobili. Non li ho ancora spostati sul mio server ma sviluppandoli localmente e guardando sul mio dispositivo mobile tramite il nodo localtunnel non sembrano esserci animazioni. Questo potrebbe essere dovuto al fatto che lo strano modo in cui funziona localtunnel non mi preoccupa troppo per questo finché non riesco a verificarlo su un server reale. Ecco l'altra di animazione che, in particolare, è quando ho notato che non funzionava sul mio dispositivo mobile:

animations: [ 
    trigger('offScreenMenu', [ 
    state('inactive', style({ 
     opacity: 0, 
     zIndex: -10 
    })), 
    state('active', style({ 
     backgroundColor: 'rgba(255, 255, 255, 0.8)', 
     zIndex: 10 
     })), 
    transition('inactive => active', animate('250ms ease-in')), 
    transition('active => inactive', animate('250ms ease-out')) 
    ]) 
] 

Un ultimo problema ho avuto, che è un problema noto da parte del team Angular2 è animazioni in mostra router modificare. Al momento c'è un SO question che indirizza questo e un ticket sul repository Angular2 (menzionato nel commento di Günter Zöchbauer nella domanda SO). Con questo, ero curioso di sapere se c'erano dei rimedi? Attraverso alcune brevi ricerche è sembrato che una volta sia stato implementato uno ng-enter e ng-leave che si possa usare all'interno del proprio css per questo, ma da quello che posso dire questi sono stati eliminati. Devo fare ancora un po 'di ricerca, quindi potrei sbagliarmi.

Grazie in anticipo per qualsiasi aiuto!

UPDATE (7.7.16): OK, ho deciso di tornare su di esso e dopo aver interferito con i tempi dell'animazione caricamento della pagina sembra funzionare. Anche se devo fare approssimativamente un'animazione 1000ms per farla notare. Il che mi porta alle domande (o altre riflessioni) che ritengo che l'animazione inizi a essere eseguita prima che il DOM sia completamente caricato. Che sembrerebbe un po 'strano. Ancora lavorando sulla situazione di animazione mobile. Sembra che presenterò un problema al repository Github al momento, dato che mi sono divertito un po 'e non riesco a farlo funzionare. Inoltre non sembra esserci alcuna menzione delle animazioni mobili che non funzionano per NG2.

UPDATE (7.13.16): Sembra che il team di Angular2 abbia apportato alcune correzioni da rilasciare con RC5 che dovrebbero risolvere i miei dubbi di cui sopra. Sto per rispondere alla mia domanda e chiudere.

risposta

3

Chiudendo questa domanda. La maggior parte dei problemi che ho menzionato sopra sembrano essere stati risolti in RC5 di Angular2. Sembra che sarà il gioco di attesa fino ad allora. Ecco i link ai rispettivi problemi/PRS repo angolare:

mia impressione che gli elementi erano animating prima di caricamento della pagina è stata corretta ed è stato risolto in questo PR: https://github.com/angular/angular/pull/9887

RC5 conterrà una correzione per consentire animazioni sulla modifica del percorso tramite questo PR: https://github.com/angular/angular/pull/9933 e NG2 alla fine consentirà una funzione query() per le animazioni che sarà grande (più può essere trovato here a tale riguardo).

Per quanto riguarda il problema mobile. Sto ancora cercando di capire il modo di ricreare il bug su un dispositivo mobile (ad esempio - in plunker) ma fino ad ora non hanno avuto successo. Non è un problema breaking per il mio sito Web, quindi per il momento avrò intenzione di andare avanti.

1

angolare 2 soluzione finale

Possiamo usare la @routeAnimation direttiva built-in per raggiungere questo obiettivo come per la mia risposta precedente here che include un Plunk.