[CSS][jQuery] Przezroczysty pasek nawigacyjny będący zawsze u góry okna przeglądarki

CSS jQuery Opublikowano: 22/12/2009

O autorze

Jestem webmasterem/webdeveloperem
z pasji. Lubię to co robię i chcę dzielić się wiedzą z innymi osobami.
Specjalizuję się w technologiach związanymi z CSS, JS, PHP.

Dzisiejszy artykuł będzie dotyczył możliwości uzyskania efektu przeźroczystego paska nawigacyjnego znajdującego się zawsze w górnej części okna przeglądanej strony. Dzięki temu, mozemy zapewnić nieustanny dostęp do menu, a jednocześnie pozwalając czytać informacje ukryte pod paskiem nawigacyjnym.
W tym przykładzie na pasku nawigacyjnym znajduje się lista rozwijana i przyciski do przewijania strony

Zaczniemy od kodu HTML:

<div id="nawigacja">
	<a href="#top">Początek strony</a>
	<a href="#bottom">Koniec strony</a>
	<ul id="lista">
    	<li>Jeden</li>
        <li>Dwa
        	<ul>
            	<li>Jeden</li>
                <li>Dwa</li>
                <li>Trzy</li>
            </ul>
        </li>
        <li>Trzy</li>
    </ul>
</div>

Teraz pora na trochę kodu CSS:

#nawigacja {
	border-bottom: 1px solid #eb7429;
	background: #b30000;
	padding: 10px 20px;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	width: 100%;
}

Zastosowanie position: fixed pozwala na poprawne zachowanie w IE6, czyli pozostawienie paska nawigacyjnego na górze okna przeglądarki.
Następnym punktem programu jest kod JavaScript oparty na bibliotece jQuery, który wygląda następująco:

$(document).ready(function() {
	(function() {
		var fadeSpeed = 200, fadeTo = 0.5, topDistance = 30;
		var topbarME = function() { $('#nawigacja').fadeTo(fadeSpeed,1); }, topbarML = function() { $('#nawigacja').fadeTo(fadeSpeed,fadeTo); };
		var inside = false;
 
		$(window).scroll(function() {
			position = $(window).scrollTop();
			if(position > topDistance && !inside) {
 
				topbarML();
				$('#nawigacja').bind('mouseenter',topbarME);
				$('#nawigacja').bind('mouseleave',topbarML);
				inside = true;
			}
			else if (position < topDistance){
				topbarME();
				$('#nawigacja').unbind('mouseenter',topbarME);
				$('#nawigacja').unbind('mouseleave',topbarML);
				inside = false;
			}
		});
	})();
});

Skrypt zostanie wykonany po całkowitym załadowaniu się strony.
To byłoby na tyle, jeśli chodzi o sposób uzyskania tego efektu. Od siebie mogę dodać, że efekt ten najprawdopodobniej znajdzie swoje zastosowanie w nowej wersji szablonu dla mojego bloga, który ulegnie gruntownej modernizacji. Lecz to dopiero po nowym roku.
Demo z tego artykułu można zobaczyć tutaj: przeźroczysty pasek nawigacyjny z wykorzystanie jQuery.

7 komentarze/y

Napisz komentarz

Komentarze są moderowane. Po akceptacji przez administratora zostaną wyświetlone na stronie.

  • Imię:
  • Email:
  • Strona www:
  • Treść komentarza:

Page optimized by WP Minify WordPress Plugin