Spec-Zone.ru › jQuery Mobile

Панель инструментов

Панель инструментовверсия добавлена: 1.4

Описание: Добавляет панели инструментов в верхнюю и/или нижнюю часть страницы.

Быстрый доступПримеры

Параметры

addBackBtn
backBtnText
backBtnTheme
классы
значения по умолчанию
disablePageZoom
отключено
полноэкранный режим
скрыть при фокусе
положение
список запрещенных элементов
переключатель нажатием
список запрещенных элементов для переключателя
тема
отслеживание постоянных панелей
переход
обновить отступы страницы
показывать при показе страницы

Методы

уничтожить
отключить
включить
скрыть
параметр
обновить
отобразить
переключить
обновить отступы страницы

События

создано

Панели инструментов

Заголовки и подвалы — это элементы, которые предшествуют соответственно содержанию страницы. Виджет панели инструментов позволяет создавать заголовки и подвалы.

Заголовки

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

Структура заголовка

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

Текст заголовка обычно представляет собой элемент заголовка H1, но можно использовать любой уровень заголовка (H1-H6), чтобы обеспечить семантическую гибкость. Например, страница, содержащая несколько мобильных "страниц", может использовать элемент H1 на домашней "странице" и элемент H2 на вторичных страницах. Все уровни заголовков стилизуются идентично по умолчанию, чтобы поддерживать визуальную согласованность.

<div data-role="header">
  <h1> Page Title </h1>
</div>

Тема

Виджет панели инструментов использует фреймворк CSS jQuery Mobile CSS, чтобы стилизовать свой внешний вид. Если нужна стилизация, специфичная для панели инструментов, можно использовать следующие имена классов CSS для переопределений или как ключи для classes опции:

  • ui-toolbar-header: Внешний контейнер для заголовка панели инструментов, который обеспечивает границу.
    • ui-toolbar-header-button-left: Этот класс можно применять для позиционирования кнопок слева в заголовке панели инструментов. Вы можете предоставить дополнительные классы для левой кнопки, используя опцию classes и этот класс в качестве ключа
    • ui-toolbar-title: Элемент заголовка панели инструментов
    • ui-toolbar-header-button-right: Этот класс можно применять для позиционирования кнопок справа в заголовке панели инструментов. Вы можете предоставить дополнительные классы для правой кнопки, используя опцию classes и этот класс в качестве ключа
  • ui-toolbar-footer: Внешний контейнер для заголовка панели инструментов, который обеспечивает границу.

    Примечание: Подвал панели инструментов не предоставляет классы для позиционирования кнопки. Дополнительную информацию см. в демо-примерах панели инструментов

    • ui-toolbar-title: Элемент заголовка панели инструментов

Основные функции заголовка

Панель инструментов заголовка по умолчанию наследует тему с шаблоном страницы, но вы можете легко установить цвет темы, добавив атрибут data-theme в заголовок. Например, data-theme="b". При использовании внешних заголовков необходимо установить тему, так как нет родительской страницы, которая могла бы унаследовать тему.

Добавление кнопок

Примечание: Поведение, при котором элементы якоря автоматически улучшаются как кнопки, устарело, начиная с jQuery Mobile 1.4.0, и будет удалено в 1.5.0. После этого вам необходимо добавить классы кнопок, если вы хотите стилизовать их как кнопки.

В стандартной конфигурации заголовка есть места для кнопок по обе стороны от заголовка. Каждая кнопка обычно представляет собой элемент a (якоря) или элемент button, у которого установлен атрибут data-role="button". Для экономии места кнопки в виджетах панели инструментов устанавливаются со стилями inline, поэтому кнопка имеет ширину только текста и значков, которые она содержит.

Позиционирование кнопок по умолчанию

Примечание: Поведение, при котором две первые кнопки автоматически получают классы ui-btn-left и ui-btn-right, устарело, начиная с jQuery Mobile 1.4.0, и будет удалено в 1.5.0. После этого вам нужно добавить эти классы в ваш разметку, если вы хотите разместить кнопки слева и/или справа.

Плагин панели инструментов ищет непосредственных потомков контейнера заголовка и автоматически устанавливает первую ссылку в слот левой кнопки, а вторую ссылку — в слот правой. В этом примере кнопка «Отмена» отобразится в левом слоте, а «Сохранить» — в правом слоте, в зависимости от их последовательности в исходном порядке.

<div data-role="header">
  <a href="index.html" data-icon="delete">Cancel</a>
  <h1>Edit Contact</h1>
  <a href="index.html" data-icon="check">Save</a>
</div>

Выделение кнопок визуально

Кнопки автоматически принимают цвет штриха строки, в которой они находятся, поэтому ссылка в строке заголовка с цветом «a» также будет стилизована как кнопки цвета «a». Просто сделайте кнопку визуально заметной. Здесь мы добавляем атрибут data-theme и устанавливаем цвет штриха кнопки на «b», чтобы выделить кнопку «Сохранить».

<div data-role="header">
  <a href="index.html" data-icon="delete">Cancel</a>
  <h1>Edit Contact</h1>
  <a href="index.html" data-icon="check" data-theme="b">Save</a>
</div>

Управление позицией кнопки с помощью классов

Позицию кнопки также можно управлять, добавляя классы к якорям кнопки, а не полагаясь на исходный порядок. Это особенно полезно, если вы хотите иметь кнопку только в правом слоте. Чтобы указать позицию кнопки, добавьте класс ui-btn-left или ui-btn-right к якорю.

<div data-role="header">
  <h1>Page Title</h1>
  <a href="index.html" data-icon="gear" class="ui-btn-right">Options</a>
</div>

Добавление кнопок в виджеты панели инструментов без заголовка

Заголовок в панели заголовка имеет некоторый отступ, который придает панели ее высоту. Если вы не хотите использовать заголовок, вам необходимо добавить элемент с class="ui-title", чтобы панель могла получить высоту и отображаться правильно.

<div data-role="header">
  <a href="index.html" data-icon="gear" class="ui-btn-right">Options</a>
  <span class="ui-title" />
</div>

Добавление кнопок "Назад"

Примечание: Опции addBackBtn, backBtnTheme и backBtnText перемещены из виджета page в виджет панели инструментов, начиная с jQuery Mobile 1.4.0.

jQuery Mobile имеет функцию автоматического создания и добавления кнопок "Назад" к любому заголовку, хотя она отключена по умолчанию. Это в первую очередь полезно в приложениях без Chrome, например, в приложениях, работающих в веб-вью native app. Фреймворк автоматически создает кнопку "Назад" в заголовке, когда опция addBackBtn плагина панели инструментов равна true. Это также можно установить с помощью разметки, если у дива заголовка есть атрибут data-add-back-btn="true".

Если вы используете атрибут data-rel="back" у якоря, все щелчки по этому якорю будут имитировать кнопку "Назад", возвращаясь на одну запись в истории и игнорируя значение href якоря по умолчанию. Это особенно полезно при ссылке на именованную страницу, например, на ссылку, которая называется «домой», или при генерации кнопок "Назад" с помощью JavaScript, например, для закрытия диалогового окна. При использовании этой функции в вашей исходной разметке убедитесь, что предоставлен осмысленный href, который фактически указывает на URL-адрес исходной страницы. Это позволит функции работать для пользователей в браузерах C-класса.

Если вы хотите только обратный переход без фактического возвращения в историю, используйте атрибут data-direction="reverse".

Настройка текста кнопки "Назад"

Если вы хотите настроить текст кнопки "Назад", вы можете использовать атрибут data-back-btn-text="previous" на вашем элементе панели инструментов или установить его программно с помощью опций плагина панели инструментов:
$.mobile.toolbar.prototype.options.backBtnText = "previous";

Стиль кнопки "Назад" по умолчанию

Если вы хотите настроить роль-тему кнопки "Назад", вы можете использовать:
$.mobile.toolbar.prototype.options.backBtnTheme = "a";
Если вы делаете это программно, установите эту опцию внутри обработчика события mobileinit.

Настраиваемые конфигурации заголовка

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

Также можно создавать пользовательские панели без использования атрибута header data-role вообще. Например, начните с любого контейнера и добавьте класс ui-bar для применения стандартных отступов панели и добавьте класс ui-bar-b для назначения стилей цветовых штрихов панели из вашей темы. («b» может быть любой буквой штриха.)

<div class="ui-bar ui-bar-b">
  <h3>I'm just a div with bar classes and a mini inline <a href="#" data-role="button" data-mini="true">Button</a></h3>
</div>

Обратите внимание, что .ui-bar не следует добавлять к панелям заголовков или подвалов, которые занимают всю ширину страницы, так как дополнительные отступы приведут к тому, что элемент полной ширины выйдет за пределы своего родительского контейнера. Чтобы добавить отступы внутри панели инструментов полной ширины, оберните ее содержимое в элемент и примените отступы к этому элементу вместо этого.

Написав несколько простых стилей, легко создать панели сообщений такого вида:

Подвалы

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

Структура панели подвала

Панель footer имеет ту же основную структуру, что и заголовок, но использует значение атрибута data-role, равное footer.

<div data-role="footer">
  <h4>Footer content</h4>
</div>

Панель инструментов подвала по умолчанию наследует тему с шаблоном страницы, но вы можете легко установить цвет темы, добавив атрибут data-theme в заголовок. Например, data-theme="b". При использовании внешних заголовков необходимо установить тему, так как нет родительской страницы, которая могла бы унаследовать тему.

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

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

Добавление кнопок

Примечание: Поведение, при котором элементы якоря автоматически улучшаются как кнопки, устарело, начиная с jQuery Mobile 1.4.0, и будет удалено в 1.5.0. После этого необходимо установить атрибут data-role="button" у тех якорей, которые вы хотите, чтобы фреймворк улучшал как кнопки.

Любая ссылка или допустимая разметка кнопки с добавленным атрибутом data-role="button" в подвал автоматически преобразуется в кнопку. Для экономии места кнопки в виджетах панели инструментов автоматически устанавливаются со стилями inline, так что кнопка имеет ширину только текста и значков, которые она содержит.

По умолчанию у виджетов панели инструментов нет отступов для размещения навигационных панелей и других виджетов. Чтобы включить отступ на панели, добавьте class="ui-bar" в подвал.

<div data-role="footer" class="ui-bar">
  <a href="index.html" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-icon-right ui-icon-plus">Add</a>
  <a href="index.html" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-icon-right ui-icon-arrow-u">Up</a>
  <a href="index.html" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-icon-right ui-icon-arrow-d">Down</a>
</div>

Это создаёт панель инструментов с кнопками, расположенными в строке

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

Чтобы сгруппировать кнопки в набор кнопок, оберните ссылки в обёртку с атрибутами data-role="controlgroup" и data-type="horizontal".

<div data-role="controlgroup" data-type="horizontal">

Это создаёт сгруппированный набор кнопок:

Добавление элементов формы

В панели инструментов также можно добавить элементы формы и другое содержимое. Вот пример раскрывающегося списка в нижней панели. Рекомендуется использовать элементы формы мини-размера в панели инструментов, добавив атрибут data-mini="true":

Фиксированные и постоянные подвалы

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

Чтобы сделать подвал постоянным между переходами, добавьте атрибут data-id к подвалу всех соответствующих страниц и используйте одинаковое значение id для каждой. Например, добавив data-id="myfooter" на текущую страницу и целевую страницу, фреймворк сохранит якоря подвала в том же месте во время анимации перехода страницы. Этот эффект будет работать правильно только в том случае, если панели инструментов заголовка и подвала настроены на data-position="fixed", чтобы они были видны во время перехода.

Фиксированные панели инструментов

В браузерах, поддерживающих CSS position: fixed (большинство настольных браузеров, iOS5+, Android 2.2+, BlackBerry 6 и другие), виджеты панели инструментов, использующие плагин "fixedtoolbar", будут закреплены в верхней или нижней части области просмотра, а содержимое страницы будет свободно прокручиваться между ними. В браузерах, которые не поддерживают фиксированное позиционирование, панели инструментов будут оставаться позиционированными в потоке, вверху или внизу страницы.

Чтобы включить это поведение в заголовке или подвале, добавьте атрибут data-position="fixed" к элементу панели инструментов jQuery Mobile.

Пример разметки фиксированного заголовка:

<div data-role="header" data-position="fixed">
  <h1>Fixed Header</h1>
</div>

Пример разметки фиксированного подвала:

<div data-role="footer" data-position="fixed">
  <h1>Fixed Footer</h1>
</div>

Примечание: Когда вы динамически вставляете фиксированную панель инструментов в активную страницу, вы должны после этого вызвать $.mobile.resetActivePageHeight();, чтобы убедиться, что высота страницы остаётся корректной. Это иллюстрируется в примере.

Панели инструментов во весь экран

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

Чтобы включить этот параметр в фиксированном заголовке или подвале, добавьте атрибут data-fullscreen к элементу.

<div data-role="header" data-position="fixed" data-fullscreen="true">
  <h1>Fullscreen fixed header</h1>
</div>

Формы в панели инструментов

Хотя все элементы формы теперь протестированы на корректную работу в *статических* панелях инструментов по состоянию на jQuery Mobile 1.1, мы рекомендуем провести обширные тесты при использовании элементов формы в *фиксированных* панелях инструментов или в любых элементах position: fixed. Это может потенциально вызвать ряд непредсказуемых проблем в различных мобильных браузерах, особенно в Android 2.2/2.3 (подробно описано в разделе «Известные проблемы в Android 2.2/2.3» ниже).

Изменения в jQuery Mobile 1.1

До версии 1.1 jQuery Mobile использовала динамически перепозиционируемые панели инструментов для эффекта фиксированного заголовка, потому что очень немногие мобильные браузеры поддерживали свойство CSS position:fixed, а моделирование поддержки с помощью «псевдо» поведения JavaScript overflow-scrolling привело бы к снижению охвата браузеров, а также ощущалось бы неестественно на некоторых платформах. Это поведение было не идеальным, и jQuery Mobile 1.1 применила новый подход к фиксированным панелям инструментов, который обеспечивает гораздо более широкую поддержку. Фреймворк теперь предлагает истинные фиксированные панели инструментов на многих популярных платформах, при этом плавно деградируя на платформах, не поддерживающих эту функцию, до статического позиционирования.

Полифиллинг для старых платформ

Плагин фиксированной панели инструментов плавно деградирует на платформах, которые не поддерживают CSS position:fixed должным образом, таких как iOS4.3. Если вам по-прежнему необходимо поддерживать фиксированные панели инструментов на этой платформе (с поведением отображения/скрытия), включённым в предыдущих выпусках, группа Filament разработала полифилл, который вы можете использовать.

  • Репозиторий кода Github с CSS и JavaScript, необходимыми для полифилла фиксированных панелей инструментов
  • Предварительный просмотр URL с использованием кода в репозитории выше

Просто включите файлы CSS и JS после ваших ссылок на jQuery Mobile, и фиксированные панели инструментов будут работать аналогично jQuery Mobile 1.0 на iOS4.3 с включением нового API для плагина fixedtoolbar 1.1.

Если у вас есть предложения по улучшениям, форкните gist на github и сообщите нам!

Известная проблема с элементами управления формами внутри фиксированных панелей инструментов и программной прокруткой

Существует скрытая проблема в iOS5 и некоторых платформах Android, когда элементы управления формами, размещённые внутри контейнеров с фиксированным позиционированием, могут терять свою область захвата при программной прокрутке окна (например, с использованием window.scrollTo). Это не проблема, специфичная для jQuery Mobile, но из-за неё мы рекомендуем не выполнять программную прокрутку документа при использовании элементов управления формами внутри фиксированных панелей инструментов jQuery Mobile. Этот тикет из отслеживателя проекта Device Bugs подробнее объясняет эту проблему.

Известные проблемы в Android 2.2/2.3

Реализация position: fixed; в Android 2.2/2.3 может в сочетании со, казалось бы, не связанными стилями и шаблонами разметки вызывать ряд странных проблем, особенно в случае элементов position: absolute внутри элементов position: fixed. Хотя мы сделали всё возможное, чтобы обойти ряд этих уникальных ошибок в рамках библиотеки, пользовательские стили могут вызвать ряд проблем.

  • Элементы форм на других страницах — списки выбора, в частности — могут перестать реагировать на взаимодействие пользователя, когда помещается пустой элемент с абсолютным позиционированием внутри элемента с фиксированным позиционированием. В редких случаях — и специфично для Android 2.2 — это может привести к тому, что *целые страницы* перестанут реагировать на взаимодействие пользователя. Это, похоже, можно решить, добавив любой символ в элемент с абсолютным позиционированием, включая неразрывный пробел, а в некоторых случаях даже пробелы.
  • Описанная выше проблема также может возникать при абсолютном позиционировании изображения внутри элемента с фиксированным позиционированием, но *только* в том случае, если для этого изображения используются *иные параметры, чем его собственные размеры*. Если высота или ширина заданы для изображения с помощью CSS или источник изображения недопустим (следовательно, у изображения нет собственной высоты и ширины), эта проблема может возникнуть. Если изображение, которое изначально, скажем, 50x50 пикселей, помещено в фиксированный элемент и оставлено с его собственными размерами, эта проблема, похоже, не возникает.
  • Когда элемент position: fixed появляется где-либо на странице, большинство 2D CSS-преобразований не будут работать. Странно, что только translate преобразования, похоже, не затронуты этой проблемой. Ещё более странно, что эта проблема решается установкой CSS opacity равной .9 или ниже для родителя фиксированного элемента.
  • Комбинации position: fixed и свойств overflow лучше избегать, так как обе они известны тем, что вызывают непредсказуемые проблемы в более старых версиях Android OS.
  • Любой элемент, который вызывает виртуальную клавиатуру, при размещении внутри элемента position: fixed, перестанет реагировать на ввод пользователя при использовании чего-либо кроме стандартной клавиатуры. Это включает Swype, XT9 или, похоже, любой метод ввода, кроме стандартной непрогнозирующей клавиатуры.

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

Больше не поддерживается: touchOverflowEnabled

До jQuery Mobile 1.1 полная поддержка фиксированных панелей инструментов зависела от поддержки браузером CSS-свойства overflow-scrolling: touch, которое в настоящее время поддерживается только в iOS5. Начиная с версии 1.1, jQuery Mobile вообще не использует это CSS-свойство. Мы удалили все внутреннее использование этого свойства в фреймворке, но оставили его глобально определённым в объекте $.mobile, чтобы снизить риск, что его удаление вызовет проблемы в существующих приложениях. Это свойство помечено для удаления, поэтому, пожалуйста, обновите свой код, чтобы больше не использовать его. Однако тест поддержки этого свойства всё ещё определён в $.support, и мы пока не планируем удалять этот тест.

Параметры

addBackBtn

Type: Boolean
Default: false
Автоматически добавлять кнопку в заголовок, которая переведет пользователя на предыдущую страницу.

Этот параметр влияет только на виджеты панели инструментов заголовка.

Этот параметр также доступен как атрибут данных: data-add-back-btn="true".

Примеры кода:

Инициализация панели инструментов с указанным параметром addBackBtn:

$( ".selector" ).toolbar({
  addBackBtn: true
});

Получение или установка параметра addBackBtn после инициализации:

// Getter
var addBackBtn = $( ".selector" ).toolbar( "option", "addBackBtn" );
 
// Setter
$( ".selector" ).toolbar( "option", "addBackBtn", true );

backBtnText

Type: String
Default: "Back"
Текст, который будет отображаться на кнопке "Назад".

Этот параметр влияет только на виджеты панели инструментов заголовка.

Этот параметр также доступен как атрибут данных: data-back-btn-text="Previous".

Примеры кода:

Инициализация панели инструментов с указанным параметром backBtnText:

$( ".selector" ).toolbar({
  backBtnText: "Previous"
});

Получение или установка параметра backBtnText после инициализации:

// Getter
var backBtnText = $( ".selector" ).toolbar( "option", "backBtnText" );
 
// Setter
$( ".selector" ).toolbar( "option", "backBtnText", "Previous" );

backBtnTheme

Type: String
Default: null, inherited from parent
Устанавливает цветовую тему для кнопки "Назад". Принимает одну букву от a до z, которая сопоставляется с образцами, включенными в вашу тему.

Возможные значения: буква образца (a-z).

Этот параметр также доступен как атрибут данных: data-back-btn-theme="b".

Примеры кода:

Инициализация панели инструментов с указанным параметром backBtnTheme:

$( ".selector" ).toolbar({
  backBtnTheme: "b"
});

Получение или установка параметра backBtnTheme после инициализации:

// Getter
var backBtnTheme = $( ".selector" ).toolbar( "option", "backBtnTheme" );
 
// Setter
$( ".selector" ).toolbar( "option", "backBtnTheme", "b" );

classes

Type: Object
Default:
{}

Укажите дополнительные классы для добавления к элементам виджета. Любые из классов, указанных в разделе Тема, могут использоваться в качестве ключей для изменения их значения. Чтобы узнать больше об этом параметре, ознакомьтесь со статьей статьей о параметре classes.

Примеры кода:

Инициализация панели инструментов с указанным параметром classes, изменение темы для класса ui-toolbar:

$( ".selector" ).toolbar({
  classes: {
    "ui-toolbar": "highlight"
  }
});

Получение или установка свойства параметра classes после инициализации, здесь чтение и изменение темы для класса ui-toolbar:

// Getter
var themeClass = $( ".selector" ).toolbar( "option", "classes.ui-toolbar" );
 
// Setter
$( ".selector" ).toolbar( "option", "classes.ui-toolbar", "highlight" );

defaults

Type: Boolean
Default: false
Установка этого параметра в true указывает на то, что другие параметры виджетов имеют значения по умолчанию и заставляет код автоматического улучшения виджетов jQuery Mobile пропустить шаг, на котором он получает значения параметров из атрибутов данных. Это может улучшить время запуска.

Этот параметр также доступен как атрибут данных: data-defaults="true".

Примеры кода:

Инициализация панели инструментов с указанным параметром defaults:

$( ".selector" ).toolbar({
  defaults: true
});

Получение или установка параметра defaults после инициализации:

// Getter
var defaults = $( ".selector" ).toolbar( "option", "defaults" );
 
// Setter
$( ".selector" ).toolbar( "option", "defaults", true );

disablePageZoom

Type: Boolean
Default: true
Этот параметр предоставляется расширением fixedToolbar.

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

Этот параметр также доступен как атрибут данных: data-disable-page-zoom="false".

Примеры кода:

Инициализация панели инструментов с указанным параметром disablePageZoom:

$( ".selector" ).toolbar({
  disablePageZoom: false
});

Получение или установка параметра disablePageZoom после инициализации:

// Getter
var disablePageZoom = $( ".selector" ).toolbar( "option", "disablePageZoom" );
 
// Setter
$( ".selector" ).toolbar( "option", "disablePageZoom", false );

disabled

Type: Boolean
Default: false
Отключает панель инструментов, если установлено значение true.

Этот параметр также доступен как атрибут данных: data-disabled="true".

Примеры кода:

Инициализация панели инструментов с указанным параметром disabled:

$( ".selector" ).toolbar({
  disabled: true
});

Получение или установка параметра disabled после инициализации:

// Getter
var disabled = $( ".selector" ).toolbar( "option", "disabled" );
 
// Setter
$( ".selector" ).toolbar( "option", "disabled", true );

fullscreen

Type: Boolean
Default: false
Этот параметр предоставляется расширением fixedToolbar.

Устанавливает, следует ли полностью скрывать панель инструментов при нажатии на страницу.

Этот параметр также доступен как атрибут данных: data-fullscreen="true".

Примеры кода:

Инициализация панели инструментов с указанным параметром fullscreen:

$( ".selector" ).toolbar({
  fullscreen: true
});

Получение или установка параметра fullscreen после инициализации:

// Getter
var fullscreen = $( ".selector" ).toolbar( "option", "fullscreen" );
 
// Setter
$( ".selector" ).toolbar( "option", "fullscreen", true );

hideDuringFocus

Type: String
Default: "input, textarea, select"
Этот параметр предоставляется расширением fixedToolbar.

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

Этот параметр также доступен как атрибут данных: data-hide-during-focus="button".

Примеры кода:

Инициализация панели инструментов с указанным параметром hideDuringFocus:

$( ".selector" ).toolbar({
  hideDuringFocus: "button"
});

Получение или установка параметра hideDuringFocus после инициализации:

// Getter
var hideDuringFocus = $( ".selector" ).toolbar( "option", "hideDuringFocus" );
 
// Setter
$( ".selector" ).toolbar( "option", "hideDuringFocus", "button" );

position

Type: String
Default: null
Этот параметр предоставляется расширением fixedToolbar.

Заставляет панель инструментов плавать над контентом через CSS position: fixed, когда установлено значение "fixed".

Этот параметр также доступен как атрибут данных: data-position="fixed".

Примеры кода:

Инициализация панели инструментов с указанным параметром position:

$( ".selector" ).toolbar({
  position: "fixed"
});

Получение или установка параметра position после инициализации:

// Getter
var position = $( ".selector" ).toolbar( "option", "position" );
 
// Setter
$( ".selector" ).toolbar( "option", "position", "fixed" );

supportBlacklist

Type: Function()
Default: default blacklist
Этот параметр предоставляется расширением fixedToolbar.

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

Значение этого параметра по умолчанию - функция, которая возвращает true всякий раз, когда значение $.support.fixedPosition равно false.

tapToggle

Type: Boolean
Default: true
Этот параметр предоставляется расширением fixedToolbar.

Устанавливает, можно ли переключать видимость фиксированной панели инструментов, касаясь страницы.

Этот параметр также доступен как атрибут данных: data-tap-toggle="false".

Примеры кода:

Инициализация панели инструментов с указанным параметром tapToggle:

$( ".selector" ).toolbar({
  tapToggle: false
});

Получение или установка параметра tapToggle после инициализации:

// Getter
var tapToggle = $( ".selector" ).toolbar( "option", "tapToggle" );
 
// Setter
$( ".selector" ).toolbar( "option", "tapToggle", false );

tapToggleBlacklist

Type: String
Default: "a, button, input, select, textarea, .ui-header-fixed, .ui-footer-fixed, .ui-flipswitch, .ui-popup, .ui-panel, .ui-panel-dismiss-open"
Этот параметр предоставляется расширением fixedToolbar.

Когда пользователь нажимает на страницу и параметр tapToggle установлен для виджета фиксированной панели инструментов, элемент, по которому пользователь нажал, проверяется до того, как будет переключена видимость панели инструментов. Если элемент, по которому нажал пользователь, соответствует селектору, указанному в качестве значения этого параметра, то панель инструментов не переключается.

Этот параметр также доступен как атрибут данных: data-tap-toggle-blacklist=".do-not-toggle-fixed-toolbar".

Примеры кода:

Инициализация панели инструментов с указанным параметром tapToggleBlacklist:

$( ".selector" ).toolbar({
  tapToggleBlacklist: ".do-not-toggle-fixed-toolbar"
});

Получение или установка параметра tapToggleBlacklist после инициализации:

// Getter
var tapToggleBlacklist = $( ".selector" ).toolbar( "option", "tapToggleBlacklist" );
 
// Setter
$( ".selector" ).toolbar( "option", "tapToggleBlacklist", ".do-not-toggle-fixed-toolbar" );

theme

Type: String
Default: null, inherited from parent
Устанавливает цветовую схему (образец) для виджета панели инструментов. Принимает одну букву от a до z, которая сопоставляется с образцами, включенными в вашу тему.

Возможные значения: буква образца (a-z).

Этот параметр также доступен как атрибут данных: data-theme="b".

Примеры кода:

Инициализация панели инструментов с указанным параметром theme:

$( ".selector" ).toolbar({
  theme: "b"
});

Получение или установка параметра theme после инициализации:

// Getter
var theme = $( ".selector" ).toolbar( "option", "theme" );
 
// Setter
$( ".selector" ).toolbar( "option", "theme", "b" );

trackPersistentToolbars

Тип: Boolean
По умолчанию: true
Этот параметр предоставляется расширением fixedToolbar.

Определяет, будет ли панель инструментов сохраняться между страницами.

Этот параметр также доступен как атрибут данных: data-track-persistent-toolbars="false".

(версия устарела: 1.4.0)
Примеры кода:

Инициализируйте панель инструментов с заданным параметром trackPersistentToolbars:

$( ".selector" ).toolbar({
  trackPersistentToolbars: false
});

Получение или установка параметра trackPersistentToolbars после инициализации:

// Getter
var trackPersistentToolbars = $( ".selector" ).toolbar( "option", "trackPersistentToolbars" );
 
// Setter
$( ".selector" ).toolbar( "option", "trackPersistentToolbars", false );

transition

Тип: String
По умолчанию: "slide"
Этот параметр предоставляется расширением fixedToolbar.

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

Распознаются следующие значения:

"none" Фиксированная панель инструментов появляется и исчезает внезапно, без плавного перехода.
"slide" Фиксированная панель инструментов сдвигается при переключении. "slideup" используется для заголовков, а "slidedown" — для подвалов.
"fade" Фиксированная панель инструментов плавно появляется и исчезает при переключении.
Примеры кода:

Инициализируйте панель инструментов с заданным параметром transition:

$( ".selector" ).toolbar({
  transition: "fade"
});

Получение или установка параметра transition после инициализации:

// Getter
var transition = $( ".selector" ).toolbar( "option", "transition" );
 
// Setter
$( ".selector" ).toolbar( "option", "transition", "fade" );

updatePagePadding

Тип: Boolean
По умолчанию: true
Этот параметр предоставляется расширением fixedToolbar.

Определяет, следует ли задавать верхний и нижний отступы div-элемента с содержимым страницы высотой панели инструментов.

Этот параметр также доступен как атрибут данных: data-update-page-padding="false".

Примеры кода:

Инициализируйте панель инструментов с заданным параметром updatePagePadding:

$( ".selector" ).toolbar({
  updatePagePadding: false
});

Получение или установка параметра updatePagePadding после инициализации:

// Getter
var updatePagePadding = $( ".selector" ).toolbar( "option", "updatePagePadding" );
 
// Setter
$( ".selector" ).toolbar( "option", "updatePagePadding", false );

visibleOnPageShow

Тип: Boolean
По умолчанию: true
Этот параметр предоставляется расширением fixedToolbar.

Определяет, будет ли панель инструментов отображаться вместе с отображением страницы.

Этот параметр также доступен как атрибут данных: data-visible-on-page-show="false".

Примеры кода:

Инициализируйте панель инструментов с заданным параметром visibleOnPageShow:

$( ".selector" ).toolbar({
  visibleOnPageShow: false
});

Получение или установка параметра visibleOnPageShow после инициализации:

// Getter
var visibleOnPageShow = $( ".selector" ).toolbar( "option", "visibleOnPageShow" );
 
// Setter
$( ".selector" ).toolbar( "option", "visibleOnPageShow", false );

Методы

destroy()Возвращает: jQuery (только для плагина)

Полностью удаляет функциональность панели инструментов. Это вернет элемент в состояние до инициализации.
  • Этот метод не принимает никаких аргументов.
Примеры кода:

Вызов метода destroy:

$( ".selector" ).toolbar( "destroy" );

disable()Возвращает: jQuery (только для плагина)

Отключает панель инструментов.
  • Этот метод не принимает никаких аргументов.
Примеры кода:

Вызов метода disable:

$( ".selector" ).toolbar( "disable" );

enable()Возвращает: jQuery (только для плагина)

Включает панель инструментов.
  • Этот метод не принимает никаких аргументов.
Примеры кода:

Вызов метода enable:

$( ".selector" ).toolbar( "enable" );

hide()Возвращает: jQuery (только для плагина)

Этот метод предоставляется расширением fixedToolbar.

Скрывает панель инструментов.

  • Этот метод не принимает никаких аргументов.
Примеры кода:

Вызов метода hide:

$( ".selector" ).toolbar( "hide" );

option( optionName )Возвращает: Объект

Получает значение, связанное с указанным optionName.
  • optionName
    Тип: Строка
    Имя параметра для получения.
Примеры кода:

Вызов метода:

var isDisabled = $( ".selector" ).toolbar( "option", "disabled" );

option()Возвращает: Простой объект

Получает объект, содержащий пары ключ/значение, представляющие текущий хеш параметров панели инструментов.
  • Эта сигнатура не принимает никаких аргументов.
Примеры кода:

Вызов метода:

var options = $( ".selector" ).toolbar( "option" );

option( optionName, value )Возвращает: jQuery (только для плагина)

Устанавливает значение параметра панели инструментов, связанного с указанным optionName.
  • optionName
    Тип: Строка
    Имя параметра для установки.
  • value
    Тип: Объект
    Значение для установки параметра.
Примеры кода:

Вызов метода:

$( ".selector" ).toolbar( "option", "disabled", true );

option( options )Возвращает: jQuery (только для плагина)

Устанавливает один или несколько параметров для панели инструментов.
  • options
    Тип: Объект
    Карта пар параметр-значение для установки.
Примеры кода:

Вызов метода:

$( ".selector" ).toolbar( "option", { disabled: true } );

refresh()Возвращает: jQuery (только для плагина)

Обновляет панель инструментов.

Если вы изменяете панель инструментов через JavaScript, необходимо вызвать метод refresh для обновления визуального оформления.

  • Этот метод не принимает никаких аргументов.
Примеры кода:

Вызов метода refresh:

$( ".selector" ).toolbar( "refresh" );

show()Возвращает: jQuery (только для плагина)

Этот метод предоставляется расширением fixedToolbar.

Отображает панель инструментов.

  • Этот метод не принимает никаких аргументов.
Примеры кода:

Вызов метода show:

$( ".selector" ).toolbar( "show" );

toggle()Возвращает: jQuery (только для плагина)

Этот метод предоставляется расширением fixedToolbar.

Вызывает либо метод show, либо метод hide в зависимости от того, видна ли панель инструментов.

  • Этот метод не принимает никаких аргументов.
Примеры кода:

Вызов метода toggle:

$( ".selector" ).toolbar( "toggle" );

updatePagePadding()Возвращает: jQuery (только для плагина)

Устанавливает верхний и нижний отступы элемента содержимого страницы высотой панели инструментов.
  • Этот метод не принимает никаких аргументов.
Примеры кода:

Вызов метода updatePagePadding:

$( ".selector" ).toolbar( "updatePagePadding" );

События

create( event, ui )Тип: toolbarcreate

Срабатывает при создании панели инструментов.
  • event
    Тип: Событие
  • ui
    Тип: Объект

Примечание: Объект ui пуст, но включён для согласованности с другими событиями.

Примеры кода:

Инициализируйте панель инструментов с заданным обработчиком события create:

$( ".selector" ).toolbar({
  create: function( event, ui ) {}
});

Привяжите обработчик события к событию toolbarcreate:

$( ".selector" ).on( "toolbarcreate", function( event, ui ) {} );

Примеры:

Базовый пример заголовка

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>toolbar demo</title>
  <link rel="stylesheet" href="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
  <script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
  <script src="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
 
<div data-role="page" id="page1">
    <div data-role="header">
    <h1>Page Title</h1>
  </div>
  <div role="main" class="ui-content">
    <p>Some content here</p>
  </div>
</div>
 
</body>
</html>

Демо:

Базовый пример страницы с фиксированными панелями инструментов.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>toolbar demo</title>
  <link rel="stylesheet" href="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
  <script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
  <script src="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
 
<div data-role="page" id="page2">
  <div data-role="header" data-position="fixed" data-theme="b">
    <h1>Fixed Header</h1>
  </div>
  <div role="main" class="ui-content">
 
    <p>This page demonstrates the "fixed" toolbar mode. </p>
    <br /><br />
    <p>To enable this toolbar feature type, you apply the <code>data-position="fixed"</code> attribute to both the header and footer <code>div</code> elements.</p>
    <br /><br />
    <p>And we're adding more text here so that you can really see the fixed toobars in action.</p>
    <br /><br />
    <p>If you tap the screen while in the middle of the page (i.e. neither at the top nor the bottom of the page, the visibility of the toolbars will toggle</p>
    <p></p>
 
  </div>
    <div data-role="footer" data-theme="b" data-position="fixed">
    <h1>Fixed Footer</h1>
  </div>
</div>
 
</body>
</html>

Демо:

Вставка фиксированной панели инструментов

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>toolbar demo</title>
  <link rel="stylesheet" href="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
  <script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
  <script src="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
 
<div data-role="page" id="page3">
  <div role="main" class="ui-content">
    <p>This page demonstrates how to correctly inject fixed toolbars.</p>
    <a href="#" id="inject-toolbar" class="ui-btn ui-corner-all ui-shadow ui-btn-inline">Inject Header</a>
  </div>
</div>
 
<script>
$.mobile.document.on( "click", "#inject-toolbar", function() {
  $( "<div data-role='header'><h1>Dynamic Fixed Toolbar Header</h1></div>")
    .appendTo( $( "#inject-toolbar" ).closest( ".ui-page" ) )
    .toolbar({ position: "fixed" });
 
  // This second step ensures that the insertion of the new toolbar does not
  // affect page height
  $.mobile.resetActivePageHeight();
});
</script>
 
</body>
</html>

Демо:

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquerymobile.com/toolbar

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API