[CSS] Jak zrobić efekt błysku na obrazku?
Na pewno czasem chciałbyś, aby galeria zdjęć wyglądała szczególnie efektownie i przyciągała uwagę użytkownika strony.
W dzisiejszym artykule zostanie opisany sposób na uzyskanie efektu błysku na zdjęciu za pomocą tylko i wyłącznie CSS. Efekt pojawi się w momencie najazdu kursorem myszki na zdjęcie.
Struktura kodu HTML
Zaczynamy od kodu HTML, wygląda on następująco:
1 2 3 4 | <div class="polaroid"> <img src="http://farm3.staticflickr.com/2394/2060535614_24d54e30bb.jpg" alt="Obrazek z Flickr"/> <div class="shine"></div> </div> |
Kod nie jest przesadnie rozbudowany, ale to dobrze. Utrzymujemy dzięki temu przejrzystość kodu.
Jak pewnie zauważyłeś, w divie o klasie polaroid zawarte są 2 elementy:
- obrazek
- div o klasie shine, który będzie zawierał animację blasku
Jako obrazek wykorzystałem jeden z obrazków z serwisu Flickr na licencji Creative Commons.
Style CSS
Mając tak przygotowaną strukturę kodu przygotujemy odpowiednie style:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | .polaroid { width: 500px; height: 314px; position: relative; border: 5px solid #fff; border-bottom: 50px solid #fff; } .shine { width: 100%; height: 100%; background-image: url('blask.png'); background-position: -500px 0; left: 0px; top: 0px; position: absolute; background-repeat: no-repeat; -webkit-transition: background-position .5s ease; -moz-transition: background-position .5s ease; -o-transition: background-position .5s ease; transition: background-position .5s ease; } .shine:hover { background-position: 500px 0; } |
Najpierw definiujemy style dla kontenera obrazka polaroid, a następnie style dla efektu błysku. Jak pewnie zauważyłeś, zostanie wykorzystany atrybut CSS transistion, należy go zdefiniować dla elementu bez żadnej dodatkowej aktywności na nim (czyli tak jak na przykładzie, a nie w hover, focus, itd., itp.). Będzie on płynnie przesuwał przygotowany obrazek blasku od lewej do prawej w czasie 0,5 sekundy. Należy pamiętać, żeby ustawić pozycję końcową dla obrazka (dla danego efektu, w tym przypadku hover).
Podsumowanie
Jest to prosty przykład na to jak osiągnąć efektowny wygląd swojej galerii zdjęć. Mam nadzieję, że będzie dla Ciebie pożyteczny.
Demo z tego artykułu jest dostępne tutaj: css efekt blasku