Виджет навигационной панеливерсия добавлена: 1.0
Описание: Создаёт виджет навигационной панели
Простая навигационная панель
jQuery Mobile имеет очень базовый виджет навигационной панели, который полезен для предоставления до 5 кнопок с необязательными иконками в панели, обычно в заголовке или футере. Также есть вариант постоянной навигационной панели, который работает больше как панель вкладок, остающаяся закреплённой при перемещении по страницам.
Навигационная панель кодируется как неупорядоченный список ссылок, заключённых в элемент контейнера, который имеет атрибут data-role="navbar". Это пример навигационной панели с двумя кнопками:
<div data-role="navbar">
<ul>
<li><a href="a.html">One</a></li>
<li><a href="b.html">Two</a></li>
</ul>
</div><!-- /navbar --> При нажатии на ссылку в навигационной панели она получает активное (выбранное) состояние. Класс ui-btn-active сначала удаляется со всех якорей в навигационной панели, прежде чем добавиться к активированной ссылке. Если это ссылка на другую страницу, класс будет удалён снова после завершения перехода.
Чтобы установить элемент в активное состояние при инициализации навигационной панели, добавьте class="ui-btn-active" к соответствующему якорю в вашей разметке. Дополнительно добавьте класс ui-state-persist, чтобы фреймворк восстановил активное состояние каждый раз, когда страница отображается, пока она существует в DOM. Пример ниже демонстрирует навигационную панель с активным элементом "Один":
<div data-role="navbar">
<ul>
<li><a href="a.html" class="ui-btn-active ui-state-persist">One</a></li>
<li><a href="b.html">Two</a></li>
</ul>
</div><!-- /navbar --> Обратите внимание, что это относится только к навигационным панелям, которые находятся внутри страницы. Если вы используете истинную постоянную панель инструментов, которая находится вне страницы и хотите установить текущий элемент в активное состояние, вам нужно добавить скрипт, который добавит класс class="ui-btn-active".
Элементы навигационной панели устанавливаются так, чтобы равномерно разделять пространство, поэтому в этом случае каждая кнопка занимает 1/2 ширины окна браузера:
Добавление третьего элемента автоматически сделает каждую кнопку 1/3 ширины окна браузера:
Добавление четвёртого элемента автоматически сделает каждую кнопку 1/4 ширины окна браузера:
Навигационная панель достигает максимального значения с 5 элементами, каждый из которых занимает 1/5 ширины окна браузера:
Если добавлено более 5 элементов, навигационная панель будет просто переноситься на несколько строк:
Навигационные панели с 1 элементом будут отображаться просто как 100%.
Навигационные панели в заголовках
Если вы хотите добавить навигационную панель в верхнюю часть страницы, вы всё ещё можете иметь заголовок страницы и кнопки. Просто добавьте контейнер навигационной панели внутрь блока заголовка сразу после заголовка и кнопок в порядке источника.
Навигационные панели в футерах
Если вы хотите добавить навигационную панель в нижнюю часть страницы, чтобы она работала больше как панель вкладок, просто оберните навигационную панель в контейнер с data-role="footer".
<div data-role="footer">
<div data-role="navbar">
<ul>
<li><a href="#">One</a></li>
<li><a href="#">Two</a></li>
<li><a href="#">Three</a></li>
</ul>
</div><!-- /navbar -->
</div><!-- /footer --> Тема
Виджет навигационной панели использует фреймворк CSS jQuery Mobile для настройки своего внешнего вида. Если нужна специфическая стилизация навигационной панели, можно использовать следующие имена классов CSS для переопределений или в качестве ключей для опции classes:
-
ui-navbar: Внешний контейнер для виджета навигационной панели-
ui-navbar-row: Строки систем навигационной панели. Это представляет каждую строку навигационной панели, кроме первой -
ui-navbar-row-n: (n+1) строка системы навигационной панели, кроме первой строки
-
Иконки в навигационных панелях
Иконки можно добавить к элементам навигационной панели, добавив атрибут data-icon, указывающий стандартную мобильную иконку к каждому якорю. По умолчанию иконки добавляются над текстом (data-iconpos="top"). Следующие примеры добавляют иконки к навигационной панели в футере.
Положение иконки устанавливается в контейнере навигационной панели, а не для отдельных ссылок для визуальной согласованности. Например, чтобы разместить иконки под метками, добавьте атрибут data-iconpos="bottom" в контейнер навигационной панели.
<div data-role="navbar" data-iconpos="bottom">
Это приведёт к выравниванию иконок снизу:
Положение иконки можно установить в data-iconpos="left":
Или положение иконки можно установить в data-iconpos="right":
Использование наборов иконок сторонних разработчиков
Вы можете добавить любые популярные библиотеки иконок, такие как Glyphish, чтобы получить панель вкладок в стиле iOS, где большие иконки расположены поверх текстовых меток. Всё, что требуется, это немного пользовательских стилей для связи с иконками и размещения их в навигационной панели. Вот пример использования иконок Glyphish и пользовательских стилей (см. исходный код страницы для стилей) в нашей навигационной панели:
Иконки Джозефом Уэном / glyphish.com. Лицензировано по лицензии Creative Commons Attribution 3.0 United States.
Тема навигационных панелей
Навигационные панели наследуют тему подложки от родительского контейнера, как и кнопки. Если навигационная панель расположена в панели инструментов заголовка или футера, она будет наследовать стандартную тему панели инструментов "a", если вы не установили это в разметке.
Вот несколько примеров навигационных панелей в различных темах контейнера, которые автоматически наследуют букву темы родителя. Обратите внимание, что в этих примерах вместо использования атрибута data-theme, мы вручную добавляем классы подложки, чтобы применить подложку тела (ui-body-a) и класс для добавления стандартной отступы тела (ui-body), но наследование работает одинаково:
Чтобы установить цвет темы для элемента навигационной панели, добавьте атрибут data-theme к отдельным ссылкам и укажите тему подложки. Обратите внимание, что применение темы подложки к контейнеру навигационной панели не поддерживается.