Prefazione
Sto cercando di creare un sito web reattivo con un menu di navigazione che soddisfa i due requisiti seguenti:Come posso evitare che un menu di navigazione reattivo (attivato da una transizione CSS3) si animi quando diventano attive diverse query multimediali?
- navigazione è completamente visibile in una finestra del browser normale, disposti orizzontalmente.
- La navigazione diventa un menu verticale selezionabile per dispositivi mobili e schermi piccoli, che si anima tra lo stato "aperto" e "chiuso".
Desidero che le prestazioni siano buone sui dispositivi mobili, soprattutto su iOS, il che significa che l'animazione deve utilizzare una transizione CSS GPU-accelerated translate3d transform.
mio problema
Mettere in piedi è stato un pezzo di torta, e per la maggior parte funziona benissimo. Ho usato z-index: 1
e transform: translate3d(0,-100%,0)
per nascondere il menu dietro un'intestazione con z-index: 2
nel suo stato chiuso predefinito e quindi transform: translate3d(0,0,0)
per animare il menu al suo stato aperto.
Ma sto riscontrando un solo problema: Quando ridimensiono la finestra del browser Chrome e la query media mobile viene attivata, il menu si anima da uno stato aperto a uno chiuso.
ridimensionare la finestra del browser per meno di 600px di larghezza di vedere il problema in azione:
- jsfiddle a tutto schermo: http://fiddle.jshell.net/ymDYG/1/show/
- jsfiddle originale: http://jsfiddle.net/ymDYG/1/
Credo di sapere perché questo sta succedendo: quando interviene la query media mobile, il browser vede che .nav
non è attualmente attivo, quindi lo anima allo stato di chiusura predefinito. Ho provato a utilizzare display:none
e display:block
per i diversi stati delle query multimediali, ma sembra che interrompa completamente l'animazione.
Come è possibile impedire l'attivazione dell'animazione di "chiusura" del menu di navigazione durante il ridimensionamento della finestra del browser?
Bella! Funziona bene Grazie. E sì! Ruba via :) – Michael
Questo funziona davvero, davvero bene. Grazie per aver spiegato così bene. Dato che non stavo usando Modernizr, ho usato jQuery per ascoltare solo il ridimensionamento delle finestre e rimuovere le classi, che nascondono il nav e ti permettono di mantenere tutte le tue query multimediali all'interno del tuo CSS. – BeesonBison