-
data publikacji: 18.12.2007
Hover – kompletny poradnik
kategoria: Tutoriale, Webmaster, XHTML/CSS autor: palmiakKilka osób z forum grafart.org poprosiło mnie o kilka porad dotyczących hovera, czyli najazdu. Niby krótki i prosty temat a można wykorzystać na setki sposobów. W tym artykule postaram się przybliżyć chociaż kilka ciekawych zastosowań.
Podstawy
Dla niektórych
hover, kończy się na pseudoklasie CSS, dzięki której można zmienić kolor linka lub podmienić obrazek. Jakby nie patrzeć jest to główne zastosowanie. Wystarczy, ze napiszemy:a {color:red;}
a:hover {color:blue;}i już po najeździe link zmienia nam kolor z czerwonego na niebieski.
Z obrazkami jest podobnie:
a {width:100px;
height:100px;
display:block;
background:url(obrazek1.jpg);
}a:hover {
background:url(obrazek2.jpg);
}Wszystko działa, jest cacy. Wszystko? No właśnie nie. W przypadku z obrazkami pojawia się problem w postaci chwilowego czekania na wczytanie się drugiego obrazka. Czy da się to naprawić? Oczywiście, że tak - do tego służy technika sliding-doors, o której za kilka akapitów napiszę.
Można sobie jeszcze zadać pytanie czy tylko
<a>można nadać stan pseudoklasę hover. W każdej normalnej, nowoczesnej przeglądarce można hover nadawać wszystkiemu, ale oczywiście jest IE. Na szczęście i to da się ominąć.Sliding doors
Ta technika ma na celu przeciwdziałanie tej chwili czekania na wczytania nowego obrazka. Jak? W najbanalniejszy sposób jaki się dało wymyślić - zamiast korzysać z dwóch obrazków skorzystano z jednego na którym są pokazane oba "stany" obrazka. Mając taki obrazek za pomocą CSS pozostało nam już przesunąć tło.
To do roboty - najpierw przygotowywujemy obrazki. Na górze dajemy wygląd po najeździe, a na dole przed. Oto przykład:

Następnie w naszym dokumencie umieszczamy ten obrazek jako tło
<a><a href="#" id="button"></a>Pozostaje nam już tylko dopisać styl:
a#button {
display:block;
height:43px;
background:url(images/rss.png) no-repeat;
width:91px;
}a#button:hover {
background-position:0 -43px;
}Przykład do podejrzenia tutaj.
A co z IE?
W IE, w pewnych sytuacjach można albo kombinować jak koń pod górkę, żeby najazd był zawsze na link (polecam stronę cssplay.com), albo pójść na łatwiznę i dojść do dwóch wniosków:
- najczęściej podświetlenie elementów jest tylko elementem ozdobnym, a jeśli nie (np. rozwijane menu) to strona jest tak skonstruowana, że fakt nie działania tego menu nie przeszkodzi w nawigacji
- ilość ludzi, którzy mają IE z wyłączonym javascript jest śladowa
Zdając sobie sprawę z tych dwóch rzeczy (szczególnie drugiej częście pierwszego punktu) możemy spokojnie przerzucić odpowiedzialność za hovery w IE na jQuery.
A w jQuery, gdyby nam się zachciało, że podświetlać
<li>najpierw w stylu musimy przygotować sobie klasę, np. najazd, następnie wystarczy napisać:$('li').hover(function() {
$(this).addClass('najazd');
}, function() {
$(this).removeClass('najazd');
});Oczywiście w klasie
najazdpiszemy jak chcemy żeby nasze<li>wyglądało po najeździe.Przykład możecie zobaczyć tutaj. W IE najazd też działą, mimo, że ne ma żadnego
a.Menu rozwijane
Zrobimy sobie menu, którego głowne pozycje będą w poziomie, a po najeździe a poszczególne pozycje pojawi nam się podmenu. Nie będzie wielkim zaskoczeniem jesli powiem, że pomoże nam jQuery.
<ul>
<li><a href="#">Pozycja pierwsza</a>
<ul>
<li>podpozycja 1</li>
<li>podpozycja 2</li>
<li>podpozycja 3</li>
</ul>
</li>
<li><a href="#">Pozycja druga</a>
<ul>
<li>podpozycja 1</li>
<li>podpozycja 2</li>
<li>podpozycja 3</li>
</ul>
</li>
<li><a href="#">Pozycja trzecia</a></li>
<li><a href="#">Pozycja czwarta</a></li>
</ul>Teraz to ostylujemy tak, żeby ułożyć wszystko tak jak chcemy oraz żeby ukyć te wewnętrzne listy:
* {
padding:0;
margin:0;
}ul {
list-style:none;
}ul li {
width:150px;
float:left;
background:yellow;
position:relative;
}ul ul {
display:none;
}.show {
display:block;
position:absolute;
top:0x;
left:0px;
width:150px;
}Na koniec pozostaje nam już tylko zabawa z jQuery. Chodzi nam o to, żeby po najechaniu na odpowiednie
<li>pokazał się odpowedni zagnieżdzony<ul>. Żeby to osiągnąć piszemy w następujący skrypcik:$(document).ready(function(){
$('ul li').hover(function() {
$(this).children('ul').addClass('show');
}, function() {
$(this).children('ul').removeClass('show');
});
});Powinno działać tak jak na przykładzie.
Podsumowanie
Mam nadzieję, że dzięki temu poradnikowi nie będziecie mieć już problemów z tym jak używać hover. Oczywiście to co przedstawiłem to tylko kilka przykładów - reszta jest ograniczona tylko Waszą wyobraźnią.
-
6 Responses to “Hover – kompletny poradnik”
Leave a Reply
Komentarze
Kategorie
Top 10
bal intermobil: Jak stworzyć stronę za pomocą xhtml oraz css
alan27pbll: Query_posts, czyli jak ujarzmić loopa część 1.
alan27pbll: Query_posts, czyli jak ujarzmić loopa część 1.
Michał: Inspirujące strony www: wrzesień 2010
czi: Gravatar, czyli jak mieć globalnego avatara
learn italian online: Query_posts, czyli jak ujarzmić loopa część 1.
hotelpalermo: Jak poprawnie osadzić Flasha w kodzie (X)HTML strony?
Michał: jQuery Cycle
Windscreen: Inspirujące strony www: wrzesień 2010
EMAAR MGF GURGAON: Query_posts, czyli jak ujarzmić loopa część 1.
- CMSy Artykuły dotyczące różnego rodzaju systemów zarządzania treścią CMS.
- Flash Podstawowe informacje pomocne przy tworzeniu animacji w Adobe Flash.
- Fotografia Samouczki dotyczące nie tylko robienia zdjęć ale też ich cyfrowej obróbki.
- Grafika Ogólnie pojęta grafika komputerowa, od inspiracji, po tworzenie layoutów oraz mniejszych form graficznych.
- Inne tutoriale wordpressowe Wszystkie inne zagadnienia dotyczące WordPressa.
- Inspiracje Inspirujące materiały graficzne z dziedziny projektowania stron www, projektów DTP, digital painting, itp.
- Obróbka zdjęć Techniki retuszu fotografii cyfrowych.
- Rysunek Tworzenie rysowanych ilustracji w Adobe Photoshop.
- Skóry do Wordpressa Darmowe oraz płatne – najlepsze skóry do WordPressa.
- Skrypty client-side
- Skrypty server-side
- Tutoriale
- Webdesign Tutoriale z zakresu projektowania stron www i grafiki użytkowej na rzecz internetu.
- Wieczór z Open Source
- Wordpress Ulubieniec naszej publiczności CMS WordPress: nowości, tricki, wtyczki, skóry i wszystko to co może przydać się przy korzystaniu z tego systemu.
- Wtyczki do Wordpressa Recenzje oraz instrukcje najbardziej popularnych i najbardziej niezbędnych pluginów do WordPressa.
- XHTML/CSS Ciekawostki z dziedziny kodowania stron www: XHTML, CSS, jQuery.
- FadeIn, fadeOut, fadeTo - czyli o pojawianiu się i znikaniu
- Kurs Flash cz.1 - podstawy
- Zastosowanie jQuery lightBox plugin
- Galeria z powiększanymi miniaturami
- Oryginalny blog na Wordpressie? Zrób go sam! cz.1
- Grafika do strony salonu samochodowego
- Kurs Flash cz.2 - pierwsze animacje / motion tween
- Oryginalny blog na Wordpressie? Zrób go sam! cz.2
- Hover - kompletny poradnik
- Zastosowanie Ajax Navigation
Najnowsze newsy
Wieczór z Open Source 2010
Jak co roku WSINF organizuje konferencję Wieczór z Open Source.
Chciałbym zaprosić was na tegoroczna konferencję Wieczór z Open Source 2010! Czytaj dalej
Grafart.org i WACOM zapraszają na konkursy!
Witam!
Myślę, że czas najwyższy nadmienić, że za niedługi czas zostanie zorganizowany pierwszy z trzech konkursów, w których główną nagrodą będą tablety firmy WACOM!
Za miejsca drugie oraz trzecie nagrodami będą kubki i koszulki firmy WACOM oraz magazyny graficzne PSD PHOTOSHOP oraz COMPUTERARTS.
Czytaj dalej
Zapraszamy na forum graficzne Graffika.pl
Każda osoba interesująca się grafiką komputerową ma czasami ochotę porozmawiać o swoich pracach, posłuchać rad, krytyki i pochwał innych osób. Idealnym miejscem na realizowanie takich potrzeb jest forum graficzne Graffika.pl.
Czytaj dalej
Polecane strony
- No bookmarks avaliable.























[...] Kilka osób z forum grafart.org poprosiło mnie o kilka porad dotyczących hovera, czyli najazdu. Niby krótki i prosty temat a można wykorzystać na setki sposobów. W tym artykule postaram się przybliżyć chociaż kilka ciekawych zastosowań. (more…) [...]
Chcę zauważyć że na “Menu rozwijane” jest także 2 sposób którego nie opisałeś… na samych hoverach beż js…
Zgadza się – na cssplay można znaleźć wersję która jest tylko na samych hooverach. Trzeba tam tylko pododawać dla IE tagi tabelowe.
Chodzi mi o coś takiego :
http://www.flacktub.yoyo.pl/menu/
Odpal IE6 i zobacz jak to działa.”Cały myk polega na tym, że łatwo jest zrobić menu, które będzie działać bez js w operze, safari, fx. W ie jest o wiele trudniejsze. Przyznam się, że z lenistwa w przykładzie zrobiłem to tylko na bazie js, a mogłem zrobić tak, zeby w normlanych przeglądarkach działało bez js, a tylko w ie by było wspomaganie js.
Dzięki za wyjaśnienie…
ale dzięki.
niestety nie mogę tego zobaczyć ponieważ posiadam IE 7