Spec-Zone.ru › jQuery Mobile

Виджет ползунка

Виджет ползункаверсия добавлена: 1.0

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

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

Параметры

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

Методы

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

События

создано
начато
остановлено

Ползунок

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

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

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

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

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

<label for="slider-1">Input slider:</label>
<input type="range" name="slider-1" id="slider-1" value="60" min="0" max="100">

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

Стилевое оформление

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

  • ui-slider: Внешний контейнер для ползунка.
    • ui-slider-popup: Элемент всплывающей подсказки в случае, если data-popup-enabled имеет значение true
    • ui-slider-input: Элемент ввода ползунка
    • ui-slider-track: Дорожка ползунка
      • ui-slider-handle: Ручка дорожки ползунка

Шаг приращения

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

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

<label for="slider-1">Input slider:</label>
<input type="range" name="slider-1" id="slider-1" value="60" min="0" max="100" step="10">

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

Выделение заполнения

Чтобы добавить выделение заполнения на дорожке до положения ползунка, добавьте атрибут data-highlight="true" к элементу ввода. Заполнение использует активный цвет.

<label for="slider-fill">Input slider:</label>
<input type="range" name="slider-fill" id="slider-fill" value="60" min="0" max="100" data-highlight="true">

Мини-версия

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

<label for="slider-mini">Input slider:</label>
<input type="range" name="slider-mini" id="slider-mini" value="25" min="0" max="100" data-highlight="true" data-mini="true">

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

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

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

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

<div class="ui-field-contain">
  <label for="slider-2">Input slider:</label>
  <input type="range" name="slider-2" id="slider-2" value="25" min="0" max="100">
</div>

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

Ползунки также реагируют на управляющие клавиши. Клавиши "Стрелка вправо", "Стрелка вверх" и "Page Up" увеличивают значение; клавиши "Стрелка влево", "Стрелка вниз" и "Page Down" уменьшают его. Для перемещения ползунка к минимальному или максимальному значению используйте клавиши "Home" или "End" соответственно.

Вызов плагина ползунка

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

$( "input" ).slider();

Стилевое оформление ползунка

Чтобы установить цвет темы для ползунка, добавьте атрибут data-theme к элементу input, который применит тему к элементу ввода, ручке и дорожке. Цвет дорожки можно установить отдельно, добавив атрибут data-track-theme для применения состояния "активно" выбранного цвета.

<div class="ui-field-contain">
  <label for="slider-3">Input slider:</label>
  <input type="range" name="slider-3" id="slider-3" value="25" min="0" max="100" data-theme="b" data-track-theme="a">
</div>

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

Переключатель-фликер

Примечание: Функция переключателя-фликера устарела с версии jQuery Mobile 1.4.0. Используйте виджет переключателя-фликера вместо него.

Двоичный переключатель-фликер — это распространённый элемент пользовательского интерфейса на мобильных устройствах, используемый для ввода данных "вкл./выкл." или "истина/ложь". Можно либо перетащить ручку переключателя, как в ползунке, либо нажать на одну из сторон переключателя.

Для создания переключателя-фликера начните с элемента select с двумя вариантами. Первый вариант будет стилизован как выключенное состояние, а второй — как включённое, поэтому напишите свои варианты соответственно.

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

<label for="flip-1">Flip switch:</label>
<select name="flip-1" id="flip-1" data-role="slider">
  <option value="off">Off</option>
  <option value="on">On</option>
</select>

Это создаст базовый переключатель-фликер. По умолчанию стили устанавливают ширину переключателя на 100% родительского контейнера и выстраивают метку на отдельной строке.

Более длинные метки

Управление масштабируется пропорционально, поэтому для использования более длинных меток можно просто добавить строку CSS, устанавливающую переключателю желаемую ширину. Например, при следующем разметке:

<div class="containing-element">
  <label for="flip-min">Flip switch:</label>
  <select name="flip-min" id="flip-min" data-role="slider">
    <option value="off">Switch Off</option>
    <option value="on">Switch On</option>
  </select>
</div>

.containing-element .ui-slider-switch { width: 9em } приведет к:

Поскольку некоторые стили по умолчанию зависят от fieldcontains, обратите внимание, что вам может потребоваться убедиться, что пользовательские стили применяются к переключателям внутри fieldcontains, используя .ui-field-contain div.ui-slider-switch { width: […]; }.

Мини-версия

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

<label for="flip-mini">Flip switch:</label>
<select name="flip-mini" id="flip-mini" data-role="slider" data-mini="true">
  <option value="off">Off</option>
  <option value="on">On</option>
</select>

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

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

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

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

<div class="ui-field-contain">
  <label for="flip-2">Flip switch:</label>
  <select name="flip-2" id="flip-2" data-role="slider" data-mini="true">
    <option value="off">Off</option>
    <option value="on">On</option>
  </select>
</div>

Теперь переключатель-фликер отображается так:

Стилевое оформление переключателя-фликера

Как и все элементы формы, этот виджет автоматически наследует тему от своего родительского контейнера. Чтобы выбрать определённый цвет темы, укажите атрибут data-theme на select и укажите букву цвета.

<div class="ui-field-contain">
  <label for="flip-3">Flip switch:</label>
  <select name="flip-3" id="flip-3" data-role="slider" data-theme="b">
    <option value="no">No</option>
    <option value="yes">Yes</option>
  </select>
</div>

В результате получается переключатель с цветами цвета "b" для ручки. Обратите внимание, что левая "включённая" часть получает цвет активного состояния.

Вот вариант с цветом "a":

Также можно стилизовать дорожку переключателя-фликера, добавив атрибут data-track-theme и указав выбранную букву цвета на select.

Вот пример переключателя-фликера с цветом "a" для дорожки и цветом "c" для ручки:

<div class="ui-field-contain">
  <label for="flip-5">Flip switch:</label>
  <select name="flip-5" id="flip-5" data-role="slider" data-theme="a" data-track-theme="b">
    <option value="no">No</option>
    <option value="yes">Yes</option>
  </select>
</div>

Вызов плагина переключателя

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

$( "input" ).slider();

Стилевое оформление переключателя-фликера

Как и все элементы формы, этот виджет автоматически наследует тему от своего родительского контейнера. Чтобы выбрать определённый цвет темы, укажите атрибут data-theme на select и укажите букву цвета.

<div class="ui-field-contain">
  <label for="flip-3">Flip switch:</label>
  <select name="flip-3" id="flip-3" data-role="slider" data-theme="a">
    <option value="no">No</option>
    <option value="yes">Yes</option>
  </select>
</div>

В результате получается переключатель с цветами цвета "a" для ручки. Обратите внимание, что левая "включённая" часть получает цвет активного состояния.

Также можно стилизовать дорожку переключателя-фликера, добавив атрибут data-track-theme и указав выбранную букву цвета на select.

Вот пример переключателя-фликера с цветом "a" для дорожки и цветом "c" для ручки:

<div class="ui-field-contain">
  <label for="flip-5">Flip switch:</label>
  <select name="flip-5" id="flip-5" data-role="slider" data-theme="a" data-track-theme="b">
    <option value="no">No</option>
    <option value="yes">Yes</option>
  </select>
</div>

Параметры

classes

Тип: Объект
По умолчанию:
 {
        "ui-slider-track": "ui-shadow-inset ui-corner-all",
        "ui-slider-input": "ui-shadow-inset ui-corner-all"
      }

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

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

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

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

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

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

defaults

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

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

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

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

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

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

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

disabled

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

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

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

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

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

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

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

highlight

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

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

$( ".selector" ).slider({
  highlight: true
});

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

// Getter
var highlight = $( ".selector" ).slider( "option", "highlight" );
 
// Setter
$( ".selector" ).slider( "option", "highlight", true );

initSelector

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

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

"input[type='range'], :jqmData(type='range'), :jqmData(role='slider')"

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

$( document ).on( "mobileinit", function() {
  $.mobile.slider.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" ).slider({
  theme: "b"
});

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

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

trackTheme

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

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

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

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

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

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

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

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

Методы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обновить ползунок.

Если вы манипулируете ползунком через JavaScript, вы должны вызвать метод refresh на нём, чтобы обновить визуальное стилирование.

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

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

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

События

create( event, ui )Тип: slidecreate

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

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

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

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

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

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

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

start( event )Тип: slidestart

Срабатывает при начальном взаимодействии с ползунком. Включает перетаскивания и нажатия.
  • event
    Тип: Event

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

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

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

$( ".selector" ).slider({
  start: function( event, ui ) {}
});

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

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

stop( event )Тип: slidestop

Срабатывает в конце взаимодействия с ползунком. Включает перетаскивания и нажатия.
  • event
    Тип: Event

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

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

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

$( ".selector" ).slider({
  stop: function( event, ui ) {}
});

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

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

Примеры:

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

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

Демо:

Базовый пример переключателя flip toggle.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>slider 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 role="main" class="ui-content">
    <label for="flip-0">Select slider:</label>
    <select name="flip-0" id="flip-0" data-role="slider">
      <option value="off">Off</option>
      <option value="on">On</option>
    </select>
  </div>
</div>
 
</body>
</html>

Демо:

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

Spec-Zone.ru

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