Панель инструментовверсия добавлена: 1.4
Описание: Добавляет панели инструментов в верхнюю и/или нижнюю часть страницы.
Описание: Добавляет панели инструментов в верхнюю и/или нижнюю часть страницы.
Заголовки и подвалы — это элементы, которые предшествуют соответственно содержанию страницы. Виджет панели инструментов позволяет создавать заголовки и подвалы.
Панель заголовка служит заголовком страницы, обычно является первым элементом на каждой мобильной странице и, как правило, содержит заголовок страницы и до двух кнопок.
Заголовок — это панель инструментов в верхней части страницы, которая обычно содержит текст заголовка страницы и необязательные кнопки, расположенные слева и/или справа от заголовка для навигации или действий. Заголовки могут быть необязательно закреплены, чтобы они оставались в верхней части экрана во все время, вместо того, чтобы прокручиваться вместе со страницей.
Текст заголовка обычно представляет собой элемент заголовка 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» ниже).
До версии 1.1 jQuery Mobile использовала динамически перепозиционируемые панели инструментов для эффекта фиксированного заголовка, потому что очень немногие мобильные браузеры поддерживали свойство CSS position:fixed, а моделирование поддержки с помощью «псевдо» поведения JavaScript overflow-scrolling привело бы к снижению охвата браузеров, а также ощущалось бы неестественно на некоторых платформах. Это поведение было не идеальным, и jQuery Mobile 1.1 применила новый подход к фиксированным панелям инструментов, который обеспечивает гораздо более широкую поддержку. Фреймворк теперь предлагает истинные фиксированные панели инструментов на многих популярных платформах, при этом плавно деградируя на платформах, не поддерживающих эту функцию, до статического позиционирования.
Плагин фиксированной панели инструментов плавно деградирует на платформах, которые не поддерживают CSS position:fixed должным образом, таких как iOS4.3. Если вам по-прежнему необходимо поддерживать фиксированные панели инструментов на этой платформе (с поведением отображения/скрытия), включённым в предыдущих выпусках, группа Filament разработала полифилл, который вы можете использовать.
Просто включите файлы 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 подробнее объясняет эту проблему.
Реализация position: fixed; в Android 2.2/2.3 может в сочетании со, казалось бы, не связанными стилями и шаблонами разметки вызывать ряд странных проблем, особенно в случае элементов position: absolute внутри элементов position: fixed. Хотя мы сделали всё возможное, чтобы обойти ряд этих уникальных ошибок в рамках библиотеки, пользовательские стили могут вызвать ряд проблем.
position: fixed появляется где-либо на странице, большинство 2D CSS-преобразований не будут работать. Странно, что только translate преобразования, похоже, не затронуты этой проблемой. Ещё более странно, что эта проблема решается установкой CSS opacity равной .9 или ниже для родителя фиксированного элемента.position: fixed и свойств overflow лучше избегать, так как обе они известны тем, что вызывают непредсказуемые проблемы в более старых версиях Android OS.position: fixed, перестанет реагировать на ввод пользователя при использовании чего-либо кроме стандартной клавиатуры. Это включает Swype, XT9 или, похоже, любой метод ввода, кроме стандартной непрогнозирующей клавиатуры.Хотя мы будем продолжать искать способы минимизировать эти ошибки, насколько это возможно, мы сейчас рекомендуем избегать реализации фиксированных панелей инструментов, содержащих сложные пользовательские стили и элементы форм, без тщательных тестов во всех версиях браузера Android.
До jQuery Mobile 1.1 полная поддержка фиксированных панелей инструментов зависела от поддержки браузером CSS-свойства overflow-scrolling: touch, которое в настоящее время поддерживается только в iOS5. Начиная с версии 1.1, jQuery Mobile вообще не использует это CSS-свойство. Мы удалили все внутреннее использование этого свойства в фреймворке, но оставили его глобально определённым в объекте $.mobile, чтобы снизить риск, что его удаление вызовет проблемы в существующих приложениях. Это свойство помечено для удаления, поэтому, пожалуйста, обновите свой код, чтобы больше не использовать его. Однако тест поддержки этого свойства всё ещё определён в $.support, и мы пока не планируем удалять этот тест.
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 );
"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" );
null, inherited from parent Возможные значения: буква образца (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.
Инициализация панели инструментов с указанным параметром 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" );
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 );
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 );
false true. Этот параметр также доступен как атрибут данных: data-disabled="true".
Инициализация панели инструментов с указанным параметром disabled:
$( ".selector" ).toolbar({
disabled: true
}); Получение или установка параметра disabled после инициализации:
// Getter var disabled = $( ".selector" ).toolbar( "option", "disabled" ); // Setter $( ".selector" ).toolbar( "option", "disabled", true );
false fixedToolbar. Устанавливает, следует ли полностью скрывать панель инструментов при нажатии на страницу.
Этот параметр также доступен как атрибут данных: data-fullscreen="true".
Инициализация панели инструментов с указанным параметром fullscreen:
$( ".selector" ).toolbar({
fullscreen: true
}); Получение или установка параметра fullscreen после инициализации:
// Getter var fullscreen = $( ".selector" ).toolbar( "option", "fullscreen" ); // Setter $( ".selector" ).toolbar( "option", "fullscreen", true );
"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" );
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" );
default blacklist fixedToolbar. Значение этого параметра - функция, которая будет возвращать true на платформах, где виджеты панели инструментов не должны отображаться как фиксированные.
Значение этого параметра по умолчанию - функция, которая возвращает true всякий раз, когда значение $.support.fixedPosition равно false.
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 );
"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" );
null, inherited from parent Возможные значения: буква образца (a-z).
Этот параметр также доступен как атрибут данных: data-theme="b".
Инициализация панели инструментов с указанным параметром theme:
$( ".selector" ).toolbar({
theme: "b"
}); Получение или установка параметра theme после инициализации:
// Getter var theme = $( ".selector" ).toolbar( "option", "theme" ); // Setter $( ".selector" ).toolbar( "option", "theme", "b" );
true fixedToolbar. Определяет, будет ли панель инструментов сохраняться между страницами.
Этот параметр также доступен как атрибут данных: data-track-persistent-toolbars="false".
Инициализируйте панель инструментов с заданным параметром trackPersistentToolbars:
$( ".selector" ).toolbar({
trackPersistentToolbars: false
}); Получение или установка параметра trackPersistentToolbars после инициализации:
// Getter var trackPersistentToolbars = $( ".selector" ).toolbar( "option", "trackPersistentToolbars" ); // Setter $( ".selector" ).toolbar( "option", "trackPersistentToolbars", false );
"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" );
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 );
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:
$( ".selector" ).toolbar( "destroy" );
Вызов метода disable:
$( ".selector" ).toolbar( "disable" );
Вызов метода enable:
$( ".selector" ).toolbar( "enable" );
fixedToolbar. Скрывает панель инструментов.
Вызов метода hide:
$( ".selector" ).toolbar( "hide" );
optionName.Вызов метода:
var isDisabled = $( ".selector" ).toolbar( "option", "disabled" );
Вызов метода:
var options = $( ".selector" ).toolbar( "option" );
optionName.Вызов метода:
$( ".selector" ).toolbar( "option", "disabled", true );
Вызов метода:
$( ".selector" ).toolbar( "option", { disabled: true } ); Если вы изменяете панель инструментов через JavaScript, необходимо вызвать метод refresh для обновления визуального оформления.
Вызов метода refresh:
$( ".selector" ).toolbar( "refresh" );
fixedToolbar. Отображает панель инструментов.
Вызов метода show:
$( ".selector" ).toolbar( "show" );
fixedToolbar. Вызывает либо метод show, либо метод hide в зависимости от того, видна ли панель инструментов.
Вызов метода toggle:
$( ".selector" ).toolbar( "toggle" );
Вызов метода updatePagePadding:
$( ".selector" ).toolbar( "updatePagePadding" );
toolbarcreate Примечание: Объект 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
|
|