Efekt rollover w CSS
25 sierpnia 2005
Sztuczka ta jest bardzo stara i znana w światku Ludzi Którzy Uwierzyli, ale nadal może być czymś nowym dla innych designerów. Technika rollover na obrazkach polega oczywiście na zamienianiu ich po najechaniu kursorem. Tworzy się gustowna, interaktywna animacja. Wszystko przy wsparciu ze strony JavaScript.
Otóż nie musi tak być. Od czego mamy CSS?
— „No tak, ale żeby umieścić obrazek za pomocą arkusza stylów musi być on ustawiony jako tło.” — odezwie się głos z sali.
— „A przecież — ktoś może dodać — obrazki tła nie są ładowane, jeśli nie są aktualnie wyświetlone, co spowoduje długaśną przerwę podczas ich zamiany!”
— „No! A w JavaScript możemy załadować obrazek do tablicy!” — zakrzyknie trzeci.
Mają rację, ale nie do końca. Nie poznali najwidoczniej techniki, którą zaprezentuję. Najprościej mówiąc: mamy jeden obrazek, sklejony z dwóch o identycznej wielkości i przesuwamy go po najechaniu gryzoniem. Przykład (nowa strona):
Korzystając z selektora elementu razem z pseudoklasą :hover przesuwamy tło za pomocą background-positon. Obrazek jest złożony w moim przypadku z dwóch pionowych - na górze efekt zwyczajny, na dole podmiana. W standardowym widoku obrazek musi być ustawiony jako tło bez powtarzania, przyległe do lewej i górnej krawędzi bloku - u nas hiperłącza zamienionego na blok.
Po najechaniu na obrazek (:hover) przesuwamy pionowo obrazek o minusową wartość połowy jego wysokości. Przesuwamy dzięki temu do góry - o wysokość każdego z dwóch teł. Teraz podczas ładowania strony załaduje się tło, minimalne większe, wyświetli i po najechaniu myszką mamy efekt typu instant. Voilà!
Dla dużych obrazków i zwiększonej dostępności najlepiej stosować ulepszoną wersję CSS rollover.


