Spec-Zone.ru › jQuery Mobile

Модуль Панель

Модуль Панельверсия добавлена: 1.3

Описание: Создаёт модуль панели

Быстрый НавигаторПримеры

Параметры

animate
classes.animate
classes.contentFixedToolbar
classes.contentFixedToolbarClosed
classes.contentFixedToolbarOpen
classes.contentWrap
classes.contentWrapClosed
classes.contentWrapOpen
classes.modal
classes.modalOpen
classes.pageContainer
classes.pageContentPrefix
classes.pageFixedToolbar
classes.pagePanel
classes.pagePanelOpen
classes.panel
classes.panelClosed
classes.panelFixed
classes.panelInner
classes.panelOpen
значения по умолчанию
заблокированный
удаляемый
отображение
селектор инициализации
позиция
фиксированная позиция
закрытие свайпом
тема

Методы

закрыть
открыть
переключить

События

перед закрытием
перед открытием
закрытие
создание
открытие

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

Где размещается разметка панели на странице

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

Вот пример размещения панели перед заголовком, содержимым и подвалом в порядке исходного кода:

<div data-role="page">
 
  <div data-role="panel" id="mypanel">
    <!-- panel content goes here -->
  </div><!-- /panel -->
 
  <!-- header -->
  <!-- content -->
  <!-- footer -->
 
</div><!-- page -->

В качестве альтернативы, вы можете добавить разметку панели после заголовка, содержимого и подвала в порядке исходного кода, непосредственно перед закрытием контейнера страницы. Где вы разместите разметку панели в исходном коде, будет зависеть от того, как вы хотите, чтобы содержимое страницы читалось людьми, использующими устройство C-класса (только HTML) или с помощью программы чтения экрана.

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

CSS Многоколоночная макетная структура

Чтобы избежать мерцания при открытии панели, мы применяем ускорение аппаратного обеспечения в браузерах WebKit. Используемый CSS может вызывать проблемы с кнопками и элементами форм на странице, если их контейнер имеет многоколоночную макетную структуру CSS (column-count). Чтобы решить эту проблему, вам нужно установить следующее правило для элемента или его контейнера:

-webkit-transform: translate3d( 0, 0, 0 );

Внешние панели

С jQuery Mobile 1.4.0 также стало возможным использовать внешние панели. Это означает, что теперь вы можете размещать панели вне страницы. Внешние панели должны быть инициализированы вручную и не будут обрабатываться автоматической инициализацией. Внешние панели останутся в DOM (если не удалены вручную) до тех пор, пока вы используете навигацию по Ajax, и их можно открывать или закрывать с любой страницы. Это может быть удобно, когда вам нужно использовать одну и ту же панель на нескольких страницах.

Вот пример внешней панели:

<div data-role="page">
  <!-- header -->
  <!-- content -->
  <!-- footer -->
</div><!-- page -->
 
<div data-role="panel" id="mypanel">
  <!-- panel content goes here -->
</div><!-- /panel -->

Панель можно дополнительно улучшить следующим образом:

$( function() {
  $( "#mypanel" ).panel();
} );

Обратите внимание, что если панель содержит другие виджеты jQuery Mobile, такие как списки, их также необходимо инициализировать вручную.

Конвенции разметки панели

Панель состоит из контейнера с атрибутом data-role="panel" и уникальным ID. Этот ID будет ссылаться на ссылку или кнопку для открытия и закрытия панели. Самая базовая разметка панели выглядит следующим образом:

<div data-role="panel" id="mypanel">
  <!-- panel content goes here -->
</div>

Положение панели на экране устанавливается атрибутом data-position. По умолчанию значение left, то есть панель будет отображаться слева от экрана. Укажите data-position="right", чтобы она отображалась справа.

Режим отображения панели устанавливается атрибутом data-display. По умолчанию значение reveal, то есть панель будет находиться под страницей и отображаться, когда страница скроется. Укажите data-display="overlay", чтобы панель отображалась поверх содержимого страницы. Третий режим, data-display="push", анимирует одновременно и панель, и страницу.

Вот пример панели с настраиваемым положением и режимом отображения:

<div data-role="panel" id="mypanel" data-position="right" data-display="push">
  <!-- panel content goes here -->
</div>

Динамическое содержимое

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

$( "#mypanel" ).trigger( "updatelayout" );

Фреймворк проверит новую высоту содержимого панели и в случае, если она превышает высоту экрана, установит высоту страницы min-height на эту высоту и разблокирует панели с data-position-fixed="true". Смотрите также Размещение панели.

Открытие панели

Видимость панели переключается с помощью ссылки на странице или путем непосредственного вызова метода open панели. По умолчанию панель размещается слева в режиме "reveal". Откройте панель программно следующим образом:

$( "#idofpanel" ).panel( "open" , optionsHash );

Для управления панелью из ссылки укажите href на ID нужной панели, которую вы хотите переключить (mypanel в примере ниже). Это указывает фреймворку на привязку ссылки к панели. Эта ссылка будет переключать видимость панели, так что нажатие откроет панель, а повторное нажатие закроет ее.

<a href="#mypanel">Open panel</a>

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

Закрытие панели

Панель можно закрыть, нажав на ссылку, которая ее открыла, проведя пальцем влево или вправо, или нажав клавишу Esc. Чтобы отключить поведение закрытия свайпом, добавьте атрибут data-swipe-close="false" к панели.

По умолчанию панели также могут быть закрыты щелчком вне панели на содержимом страницы. Чтобы предотвратить это поведение, добавьте атрибут data-dismissible="false" к панели. Возможно, на более широких экранах панель и страница будут расположены рядом, а поведение закрытия щелчком по области за пределами панели будет предотвращено только при ширине экрана больше определенной величины, путем применения медиа-запроса. Подробности см. в разделе адаптивности ниже.

Панель также можно закрыть, вызвав метод close панели непосредственно.

$( "#idofpanel" ).panel( "close" );

Часто также добавляют кнопку закрытия внутри панели. Для добавления ссылки, которая закроет панель, добавьте атрибут data-rel="close", чтобы фреймворк закрыл эту панель при нажатии. Важно, чтобы эта ссылка имела смысл и без JavaScript, поэтому мы рекомендуем, чтобы href указывало на ID страницы, на которую пользователь должен перейти при закрытии. Например, если кнопка для открытия панели находится в строке заголовка с ID my-header, ссылка для закрытия в панели должна быть:

<a href="#my-header" data-rel="close">Close panel</a>

Анимации панели

Панели будут анимированы, если браузер поддерживает 3D-преобразования. Наличие такой поддержки определяется теми же критериями, что и поддержка анимации CSS для переходов страниц. Панели используют translateX CSS-преобразования для обеспечения ускорения аппаратного обеспечения и плавности.

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

Опция animate позволяет отключить анимации панелей для всех устройств. Чтобы отключить анимации через разметку, добавьте атрибут data-animate="false" к контейнеру панели.

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

Размещение панели

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

Вы можете установить для панели position:fixed, чтобы ее содержимое отображалось независимо от того, насколько далеко вы прокрутили страницу, добавив атрибут data-position-fixed="true" к панели. Фреймворк также проверяет, поместится ли содержимое панели в область просмотра, прежде чем применять фиксированное позиционирование, поскольку это свойство предотвратит прокрутку содержимого панели и использование overflow недостаточно поддерживается в настоящее время. Если содержимое панели слишком длинное, чтобы поместиться в область просмотра, фреймворк просто отобразит панель без фиксированного позиционирования.

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

Обратите внимание, что существуют проблемы с фиксированным позиционированием в приложениях Android WebView (не в браузере), которые могут вызвать проблемы с макетом, особенно когда ускорение аппаратного обеспечения не включено. Мы рекомендуем не использовать вариант фиксированной панели при развертывании приложения Android. Кроме того, если у вас есть фиксированная панель на странице с фиксированными инструментальными панелями, инструменты могут не переходить вместе с содержимым страницы.

Стиль панелей

По умолчанию у панелей очень простые стили, чтобы вы могли настроить их по своему усмотрению. Панели по сути представляют собой простые блоки без отступов, расположенные по обе стороны от содержимого страницы. Фреймворк оборачивает содержимое панели в div с классом ui-panel-inner, имеющим отступ 15 пикселей. При необходимости вы можете переопределить это с помощью настраиваемого CSS или использовать опцию classes.panelInner для установки другого имени класса для div.

Панели имеют фиксированную ширину 17em (272 пикселя), что достаточно узко, чтобы при открытии по-прежнему отображать часть содержимого страницы, что упрощает нажатие за пределами панели для закрытия, и выглядит хорошо на широких планшетных или настольных экранах. Стиль для установки ширины панелей довольно сложен, но их можно переопределить с помощью CSS по мере необходимости.

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

Помимо фона темы, ширины и стилей высоты 100%, у панелей очень мало собственных стилей. Тема по умолчанию для панелей — "a". Вы можете установить другую тему для панели, добавив data-theme в контейнер панели или установив data-theme="none" и добавив свои собственные классы для настройки по мере необходимости.

Фреймворк применяет тему, используемую для страницы, к контейнеру содержимого. Перед открытием панели с режимом отображения "reveal" или "push" тема страницы будет установлена в ту же тему, что используется для панели. Это сделано для маскирования того, что большинство мобильных браузеров не завершили рисование фона панели, когда анимация ее открытия уже началась. Если вы используете изображение фона для страницы, вы должны установить его для класса ui-body-* темы, которую вы используете для страницы, чтобы оно использовалось в качестве фона контейнера содержимого.

Адаптивность панели

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

Чтобы страница работала наряду с открытой панелью, ей нужно переформатировать ширину до более узкой, чтобы она поместилась рядом с панелью. Это можно сделать чисто с помощью CSS, добавив левый или правый отступ, равный ширине панели (17em), к содержимому страницы, чтобы заставить переформатировать её. Во-вторых, невидимый слой, размещённый поверх страницы для поведения закрытия по щелчку вне области, скрывается с помощью CSS, поэтому вы можете нажимать на страницу и не закрывать меню.

Вот пример этих правил, заключённых в медиа-запрос, чтобы применить это поведение только выше 35em (560px):

@media (min-width:35em) {
 
  /* wrap on wide viewports once open */
 
  .ui-panel-page-content-open.ui-panel-page-content-position-left {
    margin-right: 17em;
  }
  .ui-panel-page-content-open.ui-panel-page-content-position-right {
    margin-left: 17em;
  }
  .ui-panel-page-content-open {
    width: auto;
  }
 
  /* disable "dismiss" on wide viewports */
  .ui-panel-dismiss {
    display: none;
  }
 
  /* same as the above but for panels with display mode "push" only */
 
  .ui-panel-page-content-open.ui-panel-page-content-position-left.ui-panel-page-content-display-push {
    margin-right: 17em;
  }
  .ui-panel-page-content-open.ui-panel-page-content-position-right.ui-panel-page-content-display-push {
    margin-left: 17em;
  }
  .ui-panel-page-content-open.ui-panel-page-content-display-push {
    width: auto;
  }
 
  .ui-panel-dismiss-display-push {
    display: none;
  }
}

Применение предустановленного разрыва

В стилях виджета есть предустановленный разрыв для этого поведения, который срабатывает при 55em (880px). Этот разрыв не применяется по умолчанию, чтобы вам было проще создавать собственные разрывы, которые лучше всего подходят для вашего контента и дизайна. Чтобы применить предустановленный разрыв, добавьте класс ui-responsive-panel к странице (а не к панели).

Параметры

animate

Type: Boolean
Default: true
Задает, будет ли панель анимироваться при открытии и закрытии. Если установлено значение false, панель просто появится и исчезнет без анимации. Это рекомендуется для наилучшей производительности.

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

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

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

$( ".selector" ).panel({
  animate: false
});

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

// Getter
var animate = $( ".selector" ).panel( "option", "animate" );
 
// Setter
$( ".selector" ).panel( "option", "animate", false );

classes.animate

Type: String
Default: "ui-panel-animate"
Класс, добавляемый к панели, оболочке содержимого страницы и фиксированным панелям инструментов, когда параметр animate имеет значение true, и тест функции 3D-преобразования возвращает true.

classes.contentFixedToolbar

Type: String
Default: "ui-panel-fixed-toolbar-wrap"
Note: Этот класс больше не используется, начиная с версии 1.4.0, поэтому установка этого параметра не окажет никакого влияния на панель.

Класс, добавляемый к контейнеру страницы для подавления горизонтальной прокрутки

(версия удалена: 1.4)

classes.contentFixedToolbarClosed

Type: String
Default: "ui-panel-content-fixed-toolbar-closed"
Note: Этот класс больше не используется, начиная с версии 1.4.0, поэтому установка этого параметра не окажет никакого влияния на панель.

Класс, добавляемый к фиксированным панелям инструментов после завершения анимации закрытия.

(версия удалена: 1.4)

classes.contentFixedToolbarOpen

Type: String
Default: "ui-panel-content-fixed-toolbar-open"
Note: Этот класс больше не используется, начиная с версии 1.4.0, поэтому установка этого параметра не окажет никакого влияния на панель.

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

(версия удалена: 1.4)

classes.contentWrap

Type: String
Default: "ui-panel-content-wrap"
Note: Этот класс больше не используется, начиная с версии 1.4.0, поэтому установка этого параметра не окажет никакого влияния на панель.

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

(версия удалена: 1.4)

classes.contentWrapClosed

Type: String
Default: "ui-panel-content-wrap-closed"
Note: Этот класс больше не используется, начиная с версии 1.4.0, поэтому установка этого параметра не окажет никакого влияния на панель.

Класс, добавляемый к оболочке содержимого страницы после завершения анимации закрытия.

(версия удалена: 1.4)

classes.contentWrapOpen

Type: String
Default: "ui-panel-content-wrap-open"
Note: Этот класс больше не используется, начиная с версии 1.4.0, поэтому установка этого параметра не окажет никакого влияния на панель.

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

(версия удалена: 1.4)

classes.modal

Type: String
Default: "ui-panel-dismiss"
Класс, добавляемый к оверлею на странице для закрытия панели, когда она скрыта.

classes.modalOpen

Type: String
Default: "ui-panel-dismiss-open"
Класс, добавляемый к невидимому оверлею поверх страницы, когда панель открыта. Используется для закрытия панели.

classes.pageContainer

Type: String
Default: "ui-panel-page-container"
Класс, применяемый к контейнеру страницы.

classes.pageContentPrefix

Type: String
Default: "ui-panel-page-content"
Используется для позиционирования, отображения и классов открытия оболочки и фиксированных панелей инструментов.

classes.pageFixedToolbar

Type: String
Default: "ui-panel-fixed-toolbar"
Класс, применяемый к любым фиксированным панелям инструментов.

classes.pagePanel

Type: String
Default: "ui-page-panel"
Note: Этот класс больше не используется, начиная с версии 1.4.0, поэтому установка этого параметра не окажет никакого влияния на панель.

Класс, добавляемый к контейнеру страницы, когда присутствует виджет панели.

(версия удалена: 1.4)

classes.pagePanelOpen

Type: String
Default: "ui-page-panel-open"
Note: Этот класс больше не используется, начиная с версии 1.4.0, поэтому установка этого параметра не окажет никакого влияния на панель.

Класс, добавляемый к странице, когда панель открыта.

(версия удалена: 1.4)

classes.panel

Type: String
Default: "ui-panel"
Класс, добавляемый к панели.

classes.panelClosed

Type: String
Default: "ui-panel-closed"
Класс, добавляемый к панели, когда она закрыта.

classes.panelFixed

Type: String
Default: "ui-panel-fixed"
Класс, добавляемый к панели, когда применяется фиксированное позиционирование.

classes.panelInner

Type: String
Default: "ui-panel-inner"
Класс, добавляемый к div-оболочке содержимого панели.

classes.panelOpen

Type: String
Default: "ui-panel-open"
Класс, добавляемый к панели при открытии. Используется для целевого аппаратного ускорения только во время переходов.

defaults

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

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

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

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

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

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

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

disabled

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

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

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

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

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

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

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

Скрываемый

Тип: Булево
По умолчанию: true
Устанавливает, можно ли закрыть панель, нажав вне её на странице.

Этот параметр также доступен как атрибут данных:data-dismissible="false" на ссылке, которая открывает панель.

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

Инициализируйте панель с указанным параметром dismissible:

$( ".selector" ).panel({
  dismissible: false
});

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

// Getter
var dismissible = $( ".selector" ).panel( "option", "dismissible" );
 
// Setter
$( ".selector" ).panel( "option", "dismissible", false );

отображение

Тип: Строка
По умолчанию: "reveal"
Отношение панели к содержимому страницы. Этот параметр принимает одно из трех значений:
"reveal" Сдвинуть страницу
"push" Переформатировать содержимое для размещения содержимого панели в виде колонки
"overlay" Расположить поверх содержимого

Этот параметр также доступен как атрибут данных:data-display="push" на ссылке, которая открывает панель.

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

Инициализируйте панель с указанным параметром display:

$( ".selector" ).panel({
  display: "overlay"
});

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

// Getter
var display = $( ".selector" ).panel( "option", "display" );
 
// Setter
$( ".selector" ).panel( "option", "display", "overlay" );

initSelector

Тип: Селектор
По умолчанию: See below

Значение по умолчанию initSelector для виджета панели:

":jqmData(role='panel')"

Примечание: Этот параметр устарел в версии 1.4.0 и будет удален в версии 1.5.0.
Начиная с jQuery Mobile 1.4.0, initSelector больше не является параметром виджета. Вместо этого он объявлен непосредственно в прототипе виджета. Таким образом, вы можете указать пользовательское значение, обработав событие mobileinit и перезаписав initSelector в прототипе:

$( document ).on( "mobileinit", function() {
  $.mobile.panel.prototype.initSelector = "div.custom";
});

Примечание: Не забудьте прикрепить обработчик mobileinit после загрузки jQuery, но перед загрузкой jQuery Mobile, поскольку событие срабатывает в процессе загрузки jQuery Mobile.

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

(версия устарела: 1.4.0)

позиция

Тип: Строка
По умолчанию: "left"
Сторона экрана, на которой отображается панель. Значения могут быть "слева" или "справа".

Этот параметр также доступен как атрибут данных:data-position="right" на ссылке, которая открывает панель.

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

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

$( ".selector" ).panel({
  position: "right"
});

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

// Getter
var position = $( ".selector" ).panel( "option", "position" );
 
// Setter
$( ".selector" ).panel( "option", "position", "right" );

positionFixed

Тип: Булево
По умолчанию: false
Устанавливает, имеет ли панель фиксированное позиционирование, чтобы содержимое оставалось видимым даже при прокрутке страницы. Это также позволяет прокручивать страницу, пока панель остается закрепленной. Мы рекомендуем не включать эту функцию при использовании панелей в приложениях Android из-за плохой производительности и проблем с отображением.

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

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

Инициализируйте панель с указанным параметром positionFixed:

$( ".selector" ).panel({
  positionFixed: true
});

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

// Getter
var positionFixed = $( ".selector" ).panel( "option", "positionFixed" );
 
// Setter
$( ".selector" ).panel( "option", "positionFixed", true );

swipeClose

Тип: Булево
По умолчанию: true
Устанавливает, можно ли закрыть панель, проведя пальцем влево или вправо по панели.

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

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

Инициализируйте панель с указанным параметром swipeClose:

$( ".selector" ).panel({
  swipeClose: false
});

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

// Getter
var swipeClose = $( ".selector" ).panel( "option", "swipeClose" );
 
// Setter
$( ".selector" ).panel( "option", "swipeClose", false );

тема

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

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

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

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

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

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

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

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

Методы

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

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

Вызовите метод закрыть:

$( ".selector" ).panel( "close" );

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

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

Вызовите метод открыть:

$( ".selector" ).panel( "open" );

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

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

Вызовите метод переключатель:

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

События

beforeclose( event, ui )Type: panelbeforeclose

Вызывается в начале процесса закрытия панели
  • event
    Type: Event
  • ui
    Type: Object

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

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

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

$( ".selector" ).panel({
  beforeclose: function( event, ui ) {}
});

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

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

beforeopen( event, ui )Type: panelbeforeopen

Вызывается в начале процесса открытия панели
  • event
    Type: Event
  • ui
    Type: Object

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

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

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

$( ".selector" ).panel({
  beforeopen: function( event, ui ) {}
});

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

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

close( event, ui )Type: panelclose

Вызывается после завершения процесса (и анимации) закрытия панели
  • event
    Type: Event
  • ui
    Type: Object

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

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

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

$( ".selector" ).panel({
  close: function( event, ui ) {}
});

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

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

create( event, ui )Type: panelcreate

Вызывается при создании панели
  • event
    Type: Event
  • ui
    Type: Object

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

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

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

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

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

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

open( event, ui )Type: panelopen

Вызывается после завершения процесса (и анимации) открытия панели
  • event
    Type: Event
  • ui
    Type: Object

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

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

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

$( ".selector" ).panel({
  open: function( event, ui ) {}
});

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

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

Пример:

Базовый пример панели.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>panel 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>
  <style>
  .panel-content {
    padding: 1em;
  }
  </style>
</head>
<body>
 
<div data-role="page" id="page1">
  <div data-role="header">
    <h1>jQuery Mobile Example</h1>
  </div>
  <div role="main" class="ui-content">
    <a href="#defaultpanel" data-role="button" data-inline="true" data-icon="bars">Default panel</a>
  </div>
 
  <!-- defaultpanel  -->
  <div data-role="panel" id="defaultpanel" data-theme="b">
 
    <div class="panel-content">
      <h3>Default panel options</h3>
      <p>This panel has all the default options: positioned on the left with the reveal display mode. The panel markup is <em>before</em> the header, content and footer in the source order.</p>
      <p>To close, click off the panel, swipe left or right, hit the Esc key, or use the button below:</p>
      <a href="#demo-links" data-rel="close" data-role="button" data-theme="a" data-icon="delete" data-inline="true">Close panel</a>
    </div><!-- /content wrapper for padding -->
  </div><!-- /defaultpanel -->
</div>
 
</body>
</html>

Демо:

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

Spec-Zone.ru

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