chevron-left chevron-right

[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

źródło