Ракетная панель навигации
Каждый день на любом сайте мы совершаем одну и ту же операцию - прокручиваем страницу вниз. Если мы читаем запись в блоге, просматриваем описание продукта или листаем список результатов поиска ... в любом случае нам нужно прокрутить страницу обратно наверх, если мы хотим воспользоваться навигацией или запустить новый поиск. Ракетная панель является простым решением, которое предоставляет пользователю постоянную навигацию по сайту без необходимости прокручивать обратно все содержание страницы.
Принцип работы
Когда посетитель открывает вашу страницу, он видит навигацию по умолчанию. Если он решает прокрутить страницу вниз, верхняя навигационная панель отсоединяется и следует вниз. Если пользователь решает вернуться обратно наверх, то он может воспользоваться специальной кнопкой на панели. Навигация при возвращении приобретает обычный вид. Данная техника не ограничивается стандартным меню, которое отсоединяется от страницы, можно легко изменить для вывода другого меню, которое сопровождает содержание при прокрутке вниз (например, оставив в меню только наиболее популярные пункты). Демонстрационная страница №2 имеет изменяющеюся панель навигации, а демонстрационная страница №1 оставляет меню без изменений.
Чем она полезна?
Какая польза от такой панели на сайте? Во-первых, она сохраняет время. Если кто-то читает большую запись в блоге и в середине материала решает переместиться в другой раздел, то использование Ракетной панели поможет сохранить время, которое тратится на прокручивание страницы вверх, чтобы найти соответствующую ссылку в меню. Во-вторых, такая постоянная панель дает пользователю отличную возможность исследовать ваш сайт - например, можно поместить поле поиска по сайту, что может подтолкнуть случайного посетителя к просмотру других материалов на вашем сайте (если содержание его заинтересовало).
Если вы следите за развитием идей веб дизайна, то наверняка знаете, что такая концепция навигации не нова – подобные панели выполнялись с использованием фреймов или фиксированного позиционирования элементов с помощью CSS. Однако с помощью Ракетной панели вы сможете использовать многоуровневое выпадающее меню или даже навигацию под управлением jQuery, и при этом не нужно будет беспокоиться об обрезке элементов или свойстве z-index.
Как сделана Ракетная панель?
Панель состоит из двух основных компонентов. Первый - код jQuery, который управляет панелью, добавляя классы и атрибуты, которые "отсоединяют" панель при прокрутке страницы вниз. Второй (который является опциональным) - кнопки CSS3, которые присутствуют на панели. Сначала мы разберем код jQuery, а затем поговорим о CSS3.
Но прежде всего, определим разметку HTML для нашей панели. Это простой контейнер div
со стандартным списком, который содержит элементы button
для пунктов меню.
<div id="floatingbar"> <ul> <li><img border=0 src="/images/rocketbar.png"></img></li> <li><a href="/../version2/demo_2.html"><button>Демо 2</button></a></li> <li><a href="/"><button class="default">О нас</button></a></li> <li><a href="#service"><button class="default">Услуги</button></a></li> <li><a href="/"><button class="default">Цены</button></a></li> <li><a href="/"><button class="default">Блог</button></a></li> <li><a href="/"><button class="default">Контакт</button></a></li> <li><a href="javascript:#"><button title="Scroll" id="dirbutton" class="default"> <img border=0 src="/images/bottomarrow.png"></img> </button></a></li> </ul> </div>
JavaScript – Делаем $(window).scroll()
С помощью функции $(window).scroll() возможно выполнять действия на странице, когда пользователь прокручивает ее вверх или вниз. В Ракетной панели используются две точки на текущем окне – первая является верхом страницы по отношению к положению панели ($top1), а вторая - середина текущего окна ($mid1). Когда пользователь прокручивает страницу ниже $top1, мы добавляем класс floater к элементам панели, "отсоединяя" ее. Здесь используется классическое позиционирование CSS фиксированных элементов.
Когда панель находится рядом с верхом страницы (например, когда пользователь возвращается наверх страницы или прокручивает ее обратно) класс удаляется и меню возвращается в состояние по умолчанию. Если пользователь прокручивает страницу ниже середины страницы ($mid1), кнопка скоростного перехода вниз становится кнопкой скоростного перехода наверх, и меняется графика. Все описанное очень просто реализовать.
var $top1= $('#floatingbar').offset().top + 20; //добавляем смещение для Webkit var $mid1 = Math.floor($(window).height() / 2); $(window).scroll(function() { if ($(window).scrollTop()>$top1) { $('#floatingbar').addClass('floater'); } else { $('#floatingbar').removeClass('floater'); } if($(window).scrollTop() > $mid1) { $('#dirbutton'). find('img'). attr('src','images/toparrow.png'); $('#dirbutton').data('mode','scrolldown'); $('#dirbutton').show(); }else { $('#dirbutton'). find('img'). attr('src','images/bottomarrow.png'); $('#dirbutton').data('mode','scrollup'); } });
JavaScript - Анимация прокрутки вниз и вверх
Одной из особенностей Ракетной панели является наличие кнопки, которая позволяет вернуться наверх страницы в один клик вне зависимости от положения на странице. Так как для нее требуется изображение, которое изменяется при прокрутке в середине страницы, будем использовать простые функции jQuery предварительной загрузки изображений:
$.preloadImages = function() { for(var i = 0; i").attr("src", arguments[i]); } } $.preloadImages("images/toparrow.png","images/bottomarrow.png"); $('#dirbutton').click(function() { $mode = $(this).data('mode'); switch($mode) { case 'scrolldown': $('html, body').animate({scrollTop:0}, 'slow'); return false; break; case 'scrollup': $scrollpos = $('body').outerHeight(); $('html, body').animate({scrollTop:$scrollpos}, 'slow'); return false; break; } });
Кнопки CSS3 (полный код доступен в файле style.css в исходниках)
CSS3 позволяет сделать отличные кнопки без использования изображений. Нужно использовать префиксы для различных браузеров, чтобы приложение выглядело одинаково в разных браузерах.
Для кнопок используются градиенты, тени, скругленные углы и тени для текста.
button { position: relative; margin: 0 .5em .5em .5em; padding: 0.5em 1.5em; font-size: 14px; font-weight: bold; font-family:Arial; color: #4f4f4f; text-shadow: 0 1px 1px #fff; background: #ddd; background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#c4c4c4)); background: -moz-linear-gradient(top, #ededed, #c4c4c4); border: 1px solid #acacac; border-top-color: #bdbdbd; letter-spacing:-1px; border-bottom-color: #949494; border-radius: .214em; -webkit-border-radius: .214em; -moz-border-radius: .214em; transition: all .2s ease-in-out; -webkit-transition: all .2s ease-in-out; -moz-transition: all .2s ease-in-out; -o-transition: all .2s ease-in-out; box-shadow: inset 0 1px 0 #fff; -webkit-box-shadow: inset 0 1px 0 #fff; -moz-box-shadow: inset 0 1px 0 #fff; -o-box-shadow: inset 0 1px 0 #fff; cursor: pointer; } button:hover, button:focus { box-shadow: 0 0 7px rgba(0,0,0,0.4), inset 0 1px 0 #fff; -webkit-box-shadow: 0 0 7px rgba(0,0,0,0.4), inset 0 1px 0 #fff; -moz-box-shadow: 0 0 7px rgba(0,0,0,0.4), inset 0 1px 0 #fff; -o-box-shadow: 0 0 7px rgba(0,0,0,0.4), inset 0 1px 0 #fff; } button:active { background: #ccc; background: -webkit-gradient(linear, left top, left bottom, from(#c3c3c3), to(#ebebeb)); background: -moz-linear-gradient(top, #c3c3c3, #ebebeb); border-color: #a6a6a6; border-top-color: #939393; border-bottom-color: #bcbcbc; box-shadow: inset 0 -1px 0 #fff; -webkit-box-shadow: inset 0 -1px 0 #fff; -moz-box-shadow: inset 0 -1px 0 #fff; -o-box-shadow: inset 0 -1px 0 #fff; }
Готово!
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/SsP1NBktO3M/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей Индийская пословица |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.