Разрабатываем анимированную кнопку «Вверх» на jQuery


Важно добиться хорошего взаимодействия посетителей с вашим веб-сайтом, это позволяет привлечь их внимание, и заставить их вновь вернуться на эти страницы. Наилучшим способом организации взаимодействия можно считать те случаи, когда веб-сайтом максимально приятно и удобно пользоваться, так как если ваш сайт скучный и у него, к тому же, непонятная навигация, то посетители точно уйдут.

Встречаются веб-сайты с огромными объемами информации, и ее приходится пролистывать достаточно долго. Веб-сайты типа Google+, где можно бесконечно прокручивать страницу вниз, очень раздражают, если вам вновь потребуется вернуться в самый верх страницы. Здесь можно либо обновить страницу, либо перетащить ползунок скроллинга.

Разработчикам подобных веб-сайтов стоит подумать над более гуманным решением по возврату к верху страницы. Это можно реализовать с помощью кнопки «Вверх».

В нашем сегодняшнем руководстве мы расскажем вам о процессе разработки анимированной кнопки для возврата к самому верху страницы.

Кнопка

Для начала давайте создадим саму кнопку.

<a href="#" class="scrollToTop">Scroll To Top</a>

Теперь мы можем оформить кнопку следующим кодом CSS.

.scrollToTop{
    width:100px;
    height:130px;
    padding:10px;
    text-align:center;
    background: whiteSmoke;
    font-weight: bold;
    color: #444;
    text-decoration: none;
    position:fixed;
    top:75px;
    right:40px;
    display:none;
    background: url('arrow_up.png') no-repeat 0px 20px;
}
.scrollToTop:hover{
    text-decoration:none;
}

Это расположит и зафиксирует кнопку «Вверх» в верхнем правом углу страницы.

Как видно по коду CSS, параметр display выставлен на none, так что кнопка будет спрятана в браузере. Вы поймете, для чего мы сделали именно так, как только мы рассмотрим код jQuery.

jQuery-код

Ниже мы приводим код jQuery, предназначенный для нашей задумки: мы добавим действие к событию прокрутки для того, чтобы кнопка появлялась тогда, когда мы немного полистали страницу, и исчезала, если мы находимся в самом верху.

Затем нам потребуется создать события клика, и применить его к кнопке, чтобы у пользователей была возможность одним кликом вернуться в самый верх страницы нашего веб-сайта.

Скопируйте и вставьте следующий javascript-файл для того, чтобы организовать функционирование javascript.

$(document).ready(function(){
 
    //Check to see if the window is top if not then display button
    $(window).scroll(function(){
        if ($(this).scrollTop() > 100) {
            $('.scrollToTop').fadeIn();
        } else {
            $('.scrollToTop').fadeOut();
        }
    });
 
    //Click event to scroll to top
    $('.scrollToTop').click(function(){
        $('html, body').animate({scrollTop : 0},800);
        return false;
    });
 
});

Здесь используется функция прокрутки, которая запускается тогда, когда пользователь начинает прокручивать окошко. Затем мы сможем поработать с позицией окошка, используя функцию scrollTop. Когда позиция смещается больше, чем на 100 единиц, нам нужно отобразить кнопку.

Мы отображаем кнопку, используя функцию fadeIn – это и будет наш первый виток анимации. Если параметр scrollTop меньше 100, это дает нам знать, что окно находится близко к верху страницы, поэтому кнопка нам не нужна.

Теперь мы можем добавить событие клика к кнопке прокрутки. Вместе кликом по данной кнопке, нам нужно чтобы страница возвращалась к самому верху, а также запускалась функция анимации. Для того чтобы вернуть окно обратно к верху, нам нужно изменить параметр scrollTop на 0.

Это всё, что вам потребуется для создания этой очень полезной функции. Ознакомьтесь с демо и, если вас не затруднит, в комментариях продемонстрируйте нам свои творения.

Демо






Комментарий #1: 14 февраля 2012 @ 13:51
Хорошая идея.
Комментарий #2: 14 февраля 2012 @ 20:47
Хорошая идея, лучше смотреться буд когда анимированая.
Комментарий #3: 15 февраля 2012 @ 07:23
Спасибо сайту за полезную и интересную информацию, уверен, что найду ей хорошее применение ))
Комментарий #4: 15 февраля 2012 @ 18:35
Спасибо!) Как раз думал применить теперь есть где подсмотреть)
Комментарий #5: 16 февраля 2012 @ 14:55
Спасибо за отличное решение! Обязательно применю в новом проекте!
Комментарий #6: 17 февраля 2012 @ 01:32
народ, а без яваскрипта как-нибудь это можно реализовать? через якорь # пробовал, но это резко кидает вверх илиперезагружает страницу.
Комментарий #7: 18 марта 2012 @ 12:19
Эммм... А arrow_up.png где взять-то?
Комментарий #8: 18 марта 2012 @ 12:32


--------------------
Сокращаем ссылки - получаем деньги
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.