Połącz się z nami

Internet Maker

Przycisk do przewijania w górę strony przy użyciu JQuery

Jeśli strona internetowa posiada dużo treści, to dobrym pomysłem jest umożliwienie odwiedzającym szybkiego powrotu do górnej części serwisu. W tym tutorialu przedstawimy jak można to zrobić przy użyciu jQuery.

  

Stworzymy przycisk znajdujący się w stałej pozycji w prawym dolnym rogu strony. Jednokrotne kliknięcie spowoduje przewinięcie (nie zwykły skok) do góry strony. Ponadto przycisk ten będzie widoczny tylko gdy strona zostanie przewinięta. Gdy znajdziemy się na samej górze portalu, guzik zniknie.

Najpierw dodajmy link do przycisku na naszej stronie. To właśnie on będzie odpowiedzialny za przeniesienie użytkownika na górę.

Teraz możemy użyć stylów CSS do naszego przycisku.

.scrollup{
    width:40px;
    height:40px;
    opacity:0.3;
    position:fixed;
    bottom:50px;
    right:100px;
    display:none;
    text-indent:-9999px;
    background: url('icon_top.png') no-repeat;
}

Jak widać, zdefiniowaliśmy stałą pozycję guzika. Została ona określona na 100px od prawej krawędzi i 50px od dołu. Użyłem text-indent do ukrycia tekstu ?Przewiń?. Zamiast tego widoczny będzie obrazek. display:none sprawia, że guzik jest początkowo niewidoczny.

Teraz chcemy, aby przycisk był widoczny, gdy strona jest rolowana na dół. Możemy to wykonać przy użyciu jQuery.

$(window).scroll(function(){
        if ($(this).scrollTop() > 100) {
            $('.scrollup').fadeIn();
        } else {
            $('.scrollup').fadeOut();
        }
    });

scrollTop pobiera aktualną pozycję paska przewijania. Jeśli jest ona większa niż 100px od góry, przycisk pojawia się. Jeśli natomiast jest ona mniejsza od 100px, to przycisk znika.

Następnym krokiem jest sprawienie, aby po kliknięciu użytkownik został przekierowany na górę w płynny sposób, a nie gwałtownie. Można to zrobić następująco:

$('.scrollup').click(function(){
    $("html, body").animate({ scrollTop: 0 }, 600);
    return false;
    });

scrollTop:0 przewija na samą górę strony, czy do pozycji 0px. Liczba 600 oznacza czas trwania animacji w milisekundach. Wyższa wartość spowoduje wolniejszą animację. Równie dobrze może użyć słów ?fast?, ?slow? lub ?normal? zamiast wartości podanych w milisekundach.

Oto kompletny kod jQuery:

    $(document).ready(function(){ 

        $(window).scroll(function(){
            if ($(this).scrollTop() > 100) {
                $('.scrollup').fadeIn();
            } else {
                $('.scrollup').fadeOut();
            }
        }); 

        $('.scrollup').click(function(){
            $("html, body").animate({ scrollTop: 0 }, 600);
            return false;
        });

    });

Student Informatyki i Ekonometrii na Politechnice Gdańskiej, zapalony fotograf i multiinstrumentalista.

Kliknij, by skomentować

Zostaw komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Popularne

Wsuwane tło w jQuery

Internet Maker

Adobe Illustrator: jak stworzyć infografikę

Internet Maker

18 najpopularniejszych pluginów jQuery

Internet Maker

Photoshop: scena rodem z Mass Effect 3

Internet Maker

Połącz
Newsletter

Zapisz się do naszego newslettera i bądź na bieżąco!