Статьи

Другая топ-навигация

При разработке нового сайта веб-дизайнеры обычно сталкиваются с давним вопросом: вертикальная или горизонтальная навигация? Есть плюсы и минусы обоих решений. Например, горизонтальная навигация ограничивает количество ссылок, которые вы можете иметь из-за ограниченной ширины страницы. Обычно это решается включением раскрывающейся системы. Однако, если вы пытаетесь выделить свой конкретный сайт, вы можете подумать о том, чтобы выходить за рамки «нормы».

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


В конце этого урока мы хотим узнать следующее:

  • Как создать кросс-браузерные закругленные чистые углы CSS
  • Используйте jQuery для анимации верхнего слайдера
  • Используйте jQuery для управления отображением дочерних неупорядоченных списков при наведении на родительский элемент списка.
  • Используйте jQuery для создания возможности динамического закрытия

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

страница

Нормальное состояние — Нажмите, чтобы посмотреть в полный размер

страница

Расширенное состояние — Нажмите для просмотра в полном размере

Давайте начнем с определения того, что нам нужно сделать для достижения цели:

расширение

  1. Подождите, пока пользователь не наведет курсор на одну из основных ссылок
  2. Показать закрыть X
  3. Убедитесь, что у основных ссылок нет активного класса (класса, который сделает их фон соответствующим фону под-ссылки)
  4. Добавьте активный класс к главной ссылке, которая находится над
  5. Анимируйте высоту верхней панели до 40px
  6. Убедитесь, что никакие суб-ссылки не отображаются, скрывая все суб-ссылки
  7. Показать под-ссылки главной ссылки, которая находится над

стягивание

  1. Подождите, пока не будет нажата кнопка закрытия X
  2. Скрыть все суб ссылки
  3. Удалить активный класс из всех основных ссылок
  4. Анимируйте высоту панели суб-ссылок до 10 пикселей
  5. Скрыть закрыть X

На этом сайте уже есть много отличных учебных пособий для изучения основ HTML и CSS, поэтому я предполагаю, что вы уже знаете основы. Я пропущу подробности этой части:

Для фактического содержимого страницы мы просто будем использовать изображение содержимого, чтобы обойти потерю качества, которая сопровождает веб-текст. Это делает HTML довольно простым:

CSS тоже довольно прост. Поскольку этот урок не фокусируется на HTML или CSS, если у вас есть конкретный вопрос по этому поводу, вы можете написать мне строку в комментариях ниже.

Для этого примера мы также хотели бы сделать нижние углы закругленными. Существует множество различных решений этой проблемы, в том числе использование изображений, JavaScript, CSS или, как правило, комбинация вышеупомянутого. В этом примере я хотел бы получить углы, используя только CSS. Хотя CSS3 предлагает нам простое решение, оно все еще не совместимо с разными браузерами. Так что для этого примера мы собираемся использовать онлайн-сервис Spiffy Corners . Spiffy Corners генерирует весь код для нас. Это довольно круто. Мы вводим радиус углов, желаемое имя класса, фон и цвет переднего плана — все остальное.

страница

Вот код, который он нам предоставил:

  • расширение

    1. Подождите, пока пользователь не наведет курсор на одну из основных ссылок
    2. Показать закрыть X
    3. Убедитесь, что у основных ссылок нет активного класса (класса, который сделает их фон соответствующим фону под-ссылки)
    4. Добавьте активный класс к главной ссылке, которая находится над
    5. Анимируйте высоту верхней панели до 40px
    6. Убедитесь, что никакие суб-ссылки не отображаются, скрывая все суб-ссылки
    7. Показать под-ссылки главной ссылки, которая находится над

    стягивание

    1. Подождите, пока не будет нажата кнопка закрытия X
    2. Скрыть все суб ссылки
    3. Удалить активный класс из всех основных ссылок
    4. Анимируйте высоту панели суб-ссылок до 10 пикселей
    5. Скрыть закрыть X

Добавьте слушателя:

Мы помещаем дескриптор в hover слушателя внутри функции чтения DOM:

1
2
3
4
5
6
$(document).ready(function(){
    $(«#main-nav li a.main-link»).hover(function(){
 
    });
     
});

Показать Закрыть X

Чтобы показать X, мы будем использовать функцию fadeIn ():

1
$(«#main-nav li a.close»).fadeIn();

Убедитесь, что у основных ссылок нет активного класса

Для этого мы удалим класс .active из всех основных ссылок.

1
2
3
$(«#main-nav li a.main-link»).removeClass(«active»);
    <b>
</b>

Добавьте активный класс к элементу, находящемуся на

Используя селектор this, мы можем выбрать текущий элемент, о котором мы говорим. Так как мы находимся внутри зависшего слушателя, он добавит класс к конкретному элементу, на который наведен курсор.

1
$(this).addClass(«active»);

Анимируйте высоту верхней панели до 40px

Мы будем использовать функцию animate () для этого.

1
2
3
$(«#sub-link-bar»).animate({
            height: «40px»
        });

Убедитесь, что никакие суб-ссылки не отображаются

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

1
$(«.sub-links»).hide();

Показать правильный набор под-ссылок

Для этого мы выберем элемент sibling элемента hovered и покажем список sibling.

1
$(this).siblings(«.sub-links»).fadeIn();

Теперь давайте добавим возможность снова закрыть панель. Для этого примера я решил включить X, который разрушит планку. Однако для вашего примера вы можете выбрать любой метод, который вы считаете наиболее интуитивным и функциональным.

Подождите, пока X будет нажата

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

1
$(«#main-nav li a.close»).click(function(){<br /><br /> });

Удалить активный класс из всех основных ссылок

Первое, что мы хотим сделать после нажатия X, это удалить активный класс из любой главной ссылки, потому что, когда меню сворачивается, ничего не должно быть выбрано.

1
2
$(«#main-nav li a.main-link»).removeClass(«active»);<b>
</b>

Скрыть все подссылки

Теперь, когда панель вот-вот рухнет, нам нужно спрятать все подссылки.

1
$(«.sub-links»).fadeOut();;

Анимировать верхнюю панель обратно до 10 пикселей

Теперь нам нужно минимизировать планку до 10 пикселей

1
$(«#sub-link-bar»).animate({<br /> height: «10px» <br /> });

Скрой Х снова

Теперь, когда панель свернута, пользователь больше не должен видеть возможность закрыть панель. Поэтому нам нужно снова это скрыть.

1
$(«#main-nav li a.close»).fadeOut();

Теперь, когда мы подробно рассмотрели сценарий, давайте посмотрим на все это:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
$(document).ready(function(){
    $(«#main-nav li a.main-link»).hover(function(){
        $(«#main-nav li a.close»).fadeIn();
        $(«#main-nav li a.main-link»).removeClass(«active»);
        $(this).addClass(«active»);
        $(«#sub-link-bar»).animate({
            height: «40px»
        });
        $(«.sub-links»).hide();
        $(this).siblings(«.sub-links»).fadeIn();
    });
    $(«#main-nav li a.close»).click(function(){
        $(«#main-nav li a.main-link»).removeClass(«active»);
        $(«.sub-links»).fadeOut();
        $(«#sub-link-bar»).animate({
            height: «10px»
        });
        $(«#main-nav li a.close»).fadeOut();
    });
});

Поздравляем! Вы создали горизонтальную навигационную систему, которая будет выделяться на вашем сайте как отличающаяся! Я надеюсь, что вам понравился этот урок, и вы узнали, что он полезен для получения дополнительной информации о том, как использовать jQuery для практических приложений. Если у вас есть какие-либо вопросы или комментарии, обязательно оставьте их в комментариях ниже! Я хотел бы услышать от вас!