Статьи

Как создать навигацию по нажатию клавиш с помощью jQuery

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

Первое, что нам нужно сделать, это создать нашу тестовую страницу. В этом случае я буду называть его demo.html, и он будет содержать следующее:

  1. Ссылка на фреймворк jQuery .
  2. Ссылка на скрипт, над которым мы будем работать позже. Давайте назовем это keypress_nav.js
  3. Ссылка на CSS-файл с именем style.css (мы также будем работать над этим позже).
  4. Div заголовка, который будет содержать нашу навигацию среди прочего. И
  5. Пять уникальных элементов div, которые будут служить страницами для нашего сайта.

Итак, вот как выглядит demo.html на данный момент:

Теперь, когда у нас есть DIV, мы можем перейти к созданию страницы. Как вы уже догадались, мы будем использовать неупорядоченный список <ul> для хранения ссылок и идентификаторов DIV в качестве целей для этих ссылок. Кроме того, мы добавим контейнер класса ко всем страницам DIV. Этот класс поможет нам легко ссылаться на эти DIV при создании нашего скрипта. Итак, вот что вы должны иметь сейчас:

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

Структура нашей тестовой страницы теперь завершена, но ей не хватает визуальной привлекательности. Итак, давайте добавим немного CSS и подбодрим его. Прежде чем мы начнем стилизацию, нужно помнить, что наша страница должна хорошо выглядеть, даже если JavaScript отключен. Скрипты, на мой взгляд, всегда должны использоваться в качестве бонуса для тех пользователей, у которых включен JavaScript, но не должны отталкивать тех, кто этого не делает. В конце концов, мы веб-дизайнеры / разработчики и заботимся о юзабилити, верно?

Вы можете увидеть, что мы ищем на скриншоте выше. Это просто и использует несколько хороших, смелых цветов, чтобы выделить различные разделы. Итак, вот наш CSS:

Примечание: я добавил некоторые правила самоочистки в навигацию, чтобы обойти ее недостаток высоты из-за его внутренних плавающих элементов. Другими словами, правила полей из самого верхнего контейнера теперь будут правильно влиять на навигацию <ul>.

На этом этапе урока должна появиться страница, похожая на эту:

Предварительный просмотр тестовой страницы

Это функциональная страница, и она работает должным образом без необходимости включения JavaScript. Однако, как я уже говорил, давайте дадим небольшой бонус тем пользователям, у которых в браузерах включен JavaScript. Мы сделаем это в два этапа. Во-первых, мы создадим две функции, которые будут скрывать и отображать страницы соответствующим образом. И во-вторых, мы добавим некоторый код для определения клавиш, нажимаемых пользователем. Давайте теперь создадим файл с именем keypress_nav.js и приступим к работе над нашими функциями.

Нам понадобятся две функции, чтобы наш скрипт работал так, как нужно. Одна из функций будет вызвана, когда пользователь нажмет одну из наших предварительно определенных навигационных клавиш (буквы в скобках на шаге 2), и скроет все остальные контейнеры, отображающие только DIV, связанный с этой клавишей. Вот как выглядит наша первая функция:

Теперь наша вторая функция возьмет массив ссылок и назначит их целевым функциям клика. Другими словами, функция получит наши навигационные ссылки, извлечет атрибут «href» и отобразит соответствующий DIV при нажатии на него. Итак, вот как выглядит вторая функция:

Теперь, когда наши функции закодированы, нам нужно вызывать их соответствующим образом при загрузке страницы. Первое, что нам нужно сделать, это спрятать все элементы, которые имеют контейнер классов, за исключением DIV, который имеет идентификатор home . Далее нам нужно вызвать функцию showViaLink () со ссылками внутри нашей навигации <ul> в качестве ее параметра. И последнее, но не менее важное: мы должны прослушивать нажатие клавиши пользователем и вызывать функцию showViaPress () с соответствующим идентификатором в качестве ее параметра. Это может быть достигнуто с помощью переключателя на нажатой клавише.

Коммутатор будет иметь 5 корпусов (по одному на каждую ссылку), и его номер соответствует номеру ASCII для нажатия клавиши. Например, если нажата клавиша «а» , переключатель будет использовать вариант 97 . Итак, вот как выглядит код:

Теперь, когда у нас есть все части головоломки, мы можем собрать ее вместе. Вот как должна выглядеть финальная итерация нашего скрипта:

Посмотрите на скрипт в действии на этой демонстрационной странице.
Шаблон, использованный в этой демонстрации, был сделан Тейлором Сатула .

ENDE