Uno
Dopo questo passaggio, dovresti avere un mucchio di immagini e testo impilati uno sopra l'altro in una colonna verticale. Clicca qui per avviare il live Dabblet.
Definisci la Galleria
Il nostro prossimo passo sarà quello di dare una larghezza alla galleria e centrarla sulla pagina. Cancelleremo anche tutti gli stili di voci di elenco esistenti per impostazione predefinita e aggiungere alcuni stili di base del corpo.
Si noti che la larghezza del contenitore non è arbitraria. Consentirà per quattro immagini a 200px un pezzo con 50px di margine su ciascuna (250 * 4 = 1.000).
Aggiornamento del progresso
A questo punto, lo sfondo dovrebbe essere scuro e i punti elenco sulle tue voci di elenco dovrebbero essere spariti. Altrimenti, sembrerà in gran parte uguale all'ultima volta. Clicca qui per avviare il live Dabblet.
Linea 'Em Up, Round' Em Off
Quindi dobbiamo scegliere come target gli elementi dell'elenco. Assicurati di utilizzare un selettore più specifico di? Li? come sicuramente non vorrete mai che tutti gli elementi della vostra lista abbiano questo stile. La galleria? class fornisce un comodo hook per rendere questi stili specifici per le gallerie che hai impostato.
Nonostante il fatto che le nostre immagini siano di 400 px quadrati, in realtà vogliamo che i cerchi sulla pagina siano di 200 px quadrati. Per fare ciò, è sufficiente impostare 200 px come altezza e larghezza per gli elementi dell'elenco. Per arrotondare gli elementi dell'elenco, impostare il raggio del bordo al 50%. Non vedrai l'effetto fino a quando non applichi l'overflow: nascosto? comando. Assicurati anche di lasciarli a sinistra in modo che appaiano in linea retta.
È importante notare il fatto che stiamo facendo tutto questo alla voce dell'elenco, non alle immagini. Ciò significa che le immagini conserveranno ancora le loro dimensioni originali più grandi, saranno semplicemente tagliate alla dimensione della voce di elenco, che consentirà loro di scorrere più avanti.
Aggiornamento del progresso
Dopo questo, la tua galleria dovrebbe prendere forma. Dovresti avere quattro immagini circolari per riga con il contenitore principale centrato. La parte strana è che le nostre cerchie sono piatte sulla parte superiore! Questo è semplicemente perché le nostre immagini devono essere messe in posizione, che gestiremo in seguito. Clicca qui per avviare il live Dabblet.
Fai Scoot e imposta l'animazione
Come abbiamo visto nell'ultimo passaggio, le nostre immagini sono effettivamente troppo in basso.Possiamo risolvere questo problema scegliendo come target qualsiasi immagine all'interno delle nostre voci dell'elenco di gallerie e applicando un margine negativo verso l'alto.
Mentre siamo qui, andremo avanti e configureremo l'animazione. Abbiamo appena appreso che possiamo esplorare l'immagine usando i margini, quindi questa è la proprietà che verrà scelta come target nella transizione.
Aggiornamento del progresso
L'unica differenza visiva che noterai questa volta è che la parte superiore piatta sui cerchi è stata corretta. Clicca qui per avviare il live Dabblet.
Stile i paragrafi
Probabilmente hai notato che fino a questo punto i nostri paragrafi sono stati completamente nascosti. Questo perché sono impilati sopra le immagini e fuori dai limiti dell'elemento di elenco ritagliato. Risolvere questo problema non è facile come potresti pensare.
Il primo pensiero che mi venne in mente fu semplicemente di usare il vecchio trucco di posizionamento assoluto / relativo. Ciò comporta l'impostazione della posizione degli elementi del paragrafo su assoluto e della relativa voce sull'elenco. Ciò ci consentirebbe di allineare il paragrafo in relazione al punto di partenza dell'elemento dell'elenco. Sfortunatamente, c'è un bug nel modo in cui la maggior parte dei browser rende il raggio di confine che è illustrato nell'immagine qui sotto.
Come puoi vedere, il secondo andiamo ad applicare il posizionamento relativo al nostro elemento genitore, perderà i suoi angoli arrotondati. Questo è sicuramente un fastidio, ma non è la fine del mondo. Invece, utilizzeremo semplicemente il posizionamento relativo sul nostro paragrafo e lo porteremo in posizione con l'alto e il sinistro.
Questo mostrerà il nostro paragrafo e ci consentirà di applicare alcuni stili di testo di base. Creeremo anche l'animazione per il testo, ma invece di usare il margine come prima utilizzeremo la proprietà top.
Si noti che ho impostato il? Top? proprietà al 75% in questo passaggio. Questo è semplicemente trovare un punto debole per il punto finale di riposo dei paragrafi. In realtà, vorremmo che fossero nascosti, quindi imposta il valore massimo al 110%.
Aggiornamento del progresso
Dopo questo passaggio, gli snippet di testo dovrebbero ora essere visibili nella parte inferiore delle tue cerchie. Clicca qui per avviare il live Dabblet.
Imposta i tuoi stili al passaggio del mouse
Ora, con tutto configurato e posizionato come se fosse necessario, tutto ciò che dobbiamo fare è spostare tutto quando l'utente passa sopra gli elementi dell'elenco. Per fare ciò, utilizzeremo un trucco accurato in cui selezioniamo come target gli elementi dell'elenco al passaggio del mouse, quindi scegli un elemento secondario di quell'elemento da modificare. Per iniziare, miriamo agli elementi della lista al passaggio del mouse, quindi più indichi che le immagini sono ciò che stiamo cambiando. Quindi ripetiamo questo trucco con i paragrafi.
Per le immagini, applica uno spostamento verticale e orizzontale nel margine e per il paragrafo, riporta il valore superiore al 75% che abbiamo deciso in precedenza.
Aggiornamento del progresso
Con ciò, la nostra demo sta finalmente funzionando come vogliamo noi! Passa il mouse sopra ciascuna immagine per vedere l'effetto in azione. Clicca qui per avviare il live Dabblet.
Prodotto finito
Abbiamo finito! Come accennato nell'introduzione, la pagina demo include anche alcune versioni alternative dell'effetto. Ce ne sono tre in totale: pan, zoom in e zoom out. Clicca sul link qui sotto per verificarlo.
demo: Clicca qui per il lancio.
Conclusione
Questo progetto ha esteso la nostra zona di comfort adottando un approccio diverso a uno sfondo animato. Invece di usare i CSS per posizionare l'immagine, siamo stati in grado di rimuovere l'effetto sia dal testo che dall'immagine nel nostro markup. È un po 'il contrario del tipico,? Meno markup? strategia, ma è una buona esperienza di apprendimento. Essere in grado di lavorare con entrambi gli scenari ti renderà un programmatore migliore, in grado di gestire molti ostacoli diversi.
Una nota a parte, una delle cose che mi infastidisce sempre con i CSS è il fatto che spesso si attivano alcuni effetti visivi non voluti al caricamento della pagina. Quindi, mentre la pagina sta disegnando, le transizioni stanno rendendo il processo normalmente istantaneo lungo e scomodo. So che questo può essere risolto con JavaScript, ma se hai una soluzione CSS pura, mi piacerebbe sentirla. Per la demo, ho semplicemente applicato le animazioni ai selettori hover, ma questo uccide l'animazione al passaggio del mouse. Sai di un modo migliore? Fatemi sapere nei commenti qui sotto.