Spec-Zone.ru › jQuery Mobile

Виджет Rangeslider

Виджет Rangesliderверсия добавлена: 1.3

Описание: Создаёт виджет rangeslider

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

Параметры

классы
значения по умолчанию
отключено
выделение
initSelector
мини
тема
тема дорожки

Методы

удалить
отключить
включить
параметр
обновить

События

создано
нормализовать

Ползунок диапазона

Виджет rangeslider можно рассматривать как ползунок с двумя ручками. Чтобы добавить виджет rangeslider на вашу страницу, используйте два стандартных поля ввода с атрибутом type="range", и поместите их в контейнер <div>. Значения ввода используются для настройки начального положения ручек, и значения отображаются в соответствующих текстовых полях (первое — в начале ползунка, второе — в конце).

Укажите значения атрибутов min и max, чтобы установить диапазон ползунка. Если вы хотите ограничить ввод определёнными приращениями, добавьте атрибут step. Установите атрибут value в каждом поле ввода, чтобы определить их начальное значение. Фреймворк обработает эти атрибуты для настройки виджета rangeslider.

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

Установите атрибут for контейнера labels в соответствии с атрибутом ids элемента inputs, чтобы они были семантически связаны. Можно скрывать подписи, если они не нужны в макете страницы, но мы требуем их присутствие в разметке для семантических и доступных причин.

Фреймворк найдёт все элементы input с атрибутом type="range" и автоматически преобразует их в ползунок с сопровождающим полем ввода, без необходимости применения атрибута data-role. Чтобы предотвратить автоматическое преобразование этого поля ввода в ползунок, добавьте атрибут data-role="none" в поля ввода.

Тематика

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

  • ui-rangeslider: Внешний контейнер для rangeslider.
    • ui-slider-popup: Элемент всплывающей подсказки, если data-popup-enabled равен true
    • ui-slider-first: Элемент поля ввода для начального диапазона rangeslider
    • ui-slider-last: Элемент поля ввода для конечного диапазона rangeslider
    • ui-rangeslider-sliders: Ползунки для rangeslider

В этом примере допустимый диапазон составляет 0-100.

<div data-role="rangeslider">
  <label for="range-1a">Rangeslider:</label>
  <input name="range-1a" id="range-1a" min="0" max="100" value="0" type="range" />
  <label for="range-1b">Rangeslider:</label>
  <input name="range-1b" id="range-1b" min="0" max="100" value="100" type="range" />
</div>

Ползунок rangeslider по умолчанию с этими настройками отображается так:

Приращение шага

Чтобы принудительно установить диапазон с определённым приращением, добавьте атрибут step в поле ввода. По умолчанию шаг равен 1, но в этом примере шаг равен 0,1, а максимальное значение — 10.

В этом примере допустимый диапазон составляет 0-100.

<div data-role="rangeslider">
  <label for="range-10a">Rangeslider:</label>
  <input name="range-10a" id="range-10a" min="0" max="10" step=".1" value="0" type="range" />
  <label for="range-10b">Rangeslider:</label>
  <input name="range-10b" id="range-10b" min="0" max="10" step=".1" value="10" type="range" />
</div>

Это создаст поле ввода, которое будет «прилипать» к приращениям 0,1. Если к полю ввода добавлено значение, не соответствующее приращению шага, значение будет сброшено при потере фокуса до ближайшего значения шага.

Выделение области

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

<div data-role="rangeslider" data-highlight="false">
  <label for="range-2a">Rangeslider (default is "true"):</label>
  <input name="range-2a" id="range-2a" min="0" max="100" value="0" type="range" />
  <label for="range-2b">Rangeslider:</label>
  <input name="range-2b" id="range-2b" min="0" max="100" value="100" type="range" />
</div>

Настройка темы ползунка

Чтобы установить тему для ползунка rangeslider, добавьте атрибут data-theme в inputs, который применит тему к полям ввода, ручкам и дорожке. Шрифт дорожки можно установить отдельно, добавив атрибут data-track-theme для применения варианта состояния «нажато» выбранного шрифта кнопки.

<div data-role="rangeslider" data-track-theme="a" data-theme="b">
  <label for="range-3a">Rangeslider:</label>
  <input name="range-3a" id="range-3a" min="0" max="100" value="0" type="range" />
  <label for="range-3b">Rangeslider:</label>
  <input name="range-3b" id="range-3b" min="0" max="100" value="100" type="range" />
</div>

Это создаст ползунок rangeslider с темой:

Мини-версия

Для более компактной версии, удобной в тулбарах и ограниченных пространствах, добавьте атрибут data-mini="true" к элементу для создания мини-версии.

<div data-role="rangeslider" data-mini="true">
  <label for="range-4a">Rangeslider:</label>
  <input name="range-4a" id="range-4a" min="0" max="100" value="0" type="range" />
  <label for="range-4b">Rangeslider:</label>
  <input name="range-4b" id="range-4b" min="0" max="100" value="100" type="range" />
</div>

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

Контейнеры полей

По желанию оберните разметку rangeslider в контейнер с классом ui-field-contain, чтобы помочь визуально сгруппировать её в длинной форме. В этом примере атрибут step опушен, чтобы позволить выбирать любые целые значения.

Примечание: Атрибут data- data-role="fieldcontain" устарел начиная с jQuery Mobile 1.4.0 и будет удалён в версии 1.5.0. Используйте класс ui-field-contain вместо него.

<div class="ui-field-contain">
  <div data-role="rangeslider">
    <label for="range-7a">Rangeslider:</label>
    <input name="range-7a" id="range-7a" min="0" max="100" value="0" type="range" />
    <label for="range-7b">Rangeslider:</label>
    <input name="range-7b" id="range-7b" min="0" max="100" value="100" type="range" />
  </div>
</div>

Ползунок rangeslider теперь отображается так:

Ползунки также реагируют на управляющие символы. Кнопки «Вправо», «Вверх» и «Страница Вверх» увеличивают значение; кнопки «Влево», «Вниз» и «Страница Вниз» уменьшают его. Чтобы переместить ползунок к минимальному или максимальному значению, используйте соответственно клавиши «Начало» или «Конец».

Вызов плагина rangeslider

Этот плагин будет автоматически инициализирован на любой странице, содержащей элемент div с атрибутом data-role="rangeslider". Однако, при необходимости, вы можете напрямую вызвать плагин rangeslider на любом селекторе, как и любой плагин jQuery:

$( "div#range-slider" ).rangeslider();

Параметры

classes

Тип: Объект
По умолчанию:
{}

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

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

Инициализируйте ползунок с указанным параметром classes, изменяя тему для класса ui-rangeslider.

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

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

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

defaults

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

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

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

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

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

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

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

disabled

Тип: Булево
По умолчанию: false
Деактивирует ползунок, если установлено значение true.

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

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

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

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

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

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

highlight

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

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

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

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

$( ".selector" ).rangeslider({
  highlight: false
});

Получите или задайте параметр highlight после инициализации:

// Getter
var highlight = $( ".selector" ).rangeslider( "option", "highlight" );
 
// Setter
$( ".selector" ).rangeslider( "option", "highlight", false );

initSelector

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

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

":jqmData(role='rangeslider')"

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

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

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

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

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

mini

Тип: Булево
По умолчанию: null (false)
Если установлено true, это отобразит более компактную версию ползунка, которая использует меньше вертикальной высоты, применяя класс ui-mini к самому внешнему элементу виджета ползунка.

Примечание: mini параметр устарел в версии 1.5 и будет удален в версии 1.6

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

theme

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

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

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

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

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

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

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

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

trackTheme

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

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

Этот параметр можно переопределить в разметке, назначив атрибут данных элементу ввода, например, data-track-theme="a".

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

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

$( ".selector" ).rangeslider({
  trackTheme: "a"
});

Получите или задайте параметр trackTheme после инициализации:

// Getter
var trackTheme = $( ".selector" ).rangeslider( "option", "trackTheme" );
 
// Setter
$( ".selector" ).rangeslider( "option", "trackTheme", "a" );

Методы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обновляет rangeslider.

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

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

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

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

События

create( event, ui )Тип: rangeslidercreate

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

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

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

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

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

Свяжите обработчик событий с событием rangeslidercreate:

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

normalize( event )Тип: rangeslidernormalize

срабатывает, когда входные значения нормализуются (обычно происходит, когда вы пытаетесь перетащить одну ручку за другую).
  • event
    Тип: Event

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

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

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

$( ".selector" ).rangeslider({
  normalize: function( event, ui ) {}
});

Свяжите обработчик событий с событием rangeslidernormalize:

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

Пример:

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

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>rangeslider 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>jQuery Mobile Example</h1>
  </div>
  <div data-role="rangeslider">
    <label for="range-1a">Rangeslider:</label>
    <input name="range-1a" id="range-1a" min="0" max="100" value="0" type="range">
    <label for="range-1b">Rangeslider:</label>
    <input name="range-1b" id="range-1b" min="0" max="100" value="100" type="range">
  </div>
</div>
 
</body>
</html>

Демо:

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

Spec-Zone.ru

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