Ползунок диапазона — Range Slider Fox

Range Slider Fox — это простой и удобный слайдер диапазона, написанный на TypeScript в виде плагина jQuery.

Version: 1.0

Репозиторий

Download ZIP

NPM:

npm i range-slider-fox

import 'range-slider-fox';


Вы можете настроить ползунок диапазона так, как вам нужно в демонстрационной панели и скопировать код конфигурации из столбца «Код конфигурации», нажав кнопку «Копировать код». Только не забудьте изменить значение внутри скобки $(…).


Описание:

  • Адаптивный и доступный дизайн
  • Возможность управления с клавиатуры и тача
  • Поддержка скинов (вы можете полностью изменить внешний вид слайдера с помощью css)
  • Имеет 4 встроенные темы
  • Высокая производительность благодаря продуманной архитектуре
  • Кроссбраузерность
  • Поддерживается вертикальный вид

Ключевая особенность:

  • Любое количество ползунков на одной странице без конфликтов и значительных проблем с производительностью
  • Поддерживаются отрицательные и дробные значения
  • Возможность установить пользовательский шаг или включить переходы по значениям шкалы
  • Возможность отключения элементов пользовательского интерфейса
  • Постфиксы и префиксы для ваших значений
  • Слайдер устанавливает свое значение в свойстве value, если ползунок инициализируется на элементе ввода.
  • Поддерживается конфигурация и манипулирование через атрибуты данных
  • Вы можете заблокировать работу слайдера
  • Вы можете подписаться и отписаться от событий слайдера, используя его API (onStart, onChange, onReset, onUpdate)
  • Ползунок поддерживает внешние методы (обновить, сбросить, уничтожить)
  • Вид шкалы адаптируется при изменении ширины ползунка, что делает его полностью адаптивным
  • Вы можете изменить вид слайдера в любое время: вертикально или горизонтально
  • Код плагина совместим с ES5

Зависимости:

jQuery 1.2.x+

Но можно использовать без jQuery.

Для этого необходимо использовать класс:

new Controller( new Model(options) , new View(element) )
 
options — опции конфигурации.
element — Dom элемент на котором инициализируем слайдер диапазона.
 

Применение:
Добавьте следующие библиотеки на страницу:
  • jQuery
  • rangeSliderFox.js

Добавьте на страницу следующие таблицы стилей:

  • rangeSliderFox.css

Инициализация:

<input class="rslider__fox"  value="">

$('.rslider__fox').RangeSliderFox({
    type: 'double',
    theme: 'fox',
    min: -120,
    max: 800,
    to: 500,
    from: 200,
    bar: true,
    tipMinMax: true,
    tipFromTo: true,
    grid: true,
    gridSnap: false,
    gridNumber: 40,
    onStart: (data) => {
      console.log(data.type);
      console.log(data.orientation); 
      console.log(data.theme);
      console.log(data.min);
      console.log(data.max);
      console.log(data.from);
      console.log(data.to);
      console.log(data.step);
      console.log(data.keyStepOne);
      console.log(data.keyStepHold);
      console.log(data.bar);
      console.log(data.tipPrefix);
      console.log(data.tipPostfix);
      console.log(data.tipMinMax);
      console.log(data.tipFromTo);
      console.log(data.grid);
      console.log(data.gridSnap);
      console.log(data.gridNumber);
      console.log(data.gridStep);
      console.log(data.gridRound);
      console.log(data.disabled);
    },
    onChange:(data) => {
      console.log(data);
    },
    onUpdate:(data) => {
      console.log(data);
    },
    onReset:(data) => {
      console.log(data);
    }
})

Использование API:

const object = $(dom).RangeSliderFox({}).data('RangeSliderFox');

// This piece of code will change range values and set the dot on position 350.
object.update({
min:0,
max:600,
from:350
})

// unsubscribe from events
object.update({
  onStart:null,
  onChange:null,
  onUpdate:null,
  onReset:null
})


object.reset()

// reset - will reset all the setup to the values which were 
// passed on initialization or will take default values

object.destroy() 

// destroy - will destroy slider instance, DOM-elements and all related events.

Настройки:

ОпцииАтрибуты данныхЗначения по умолчанию
(возможные значения)
ТипОписание
typedata-type'single' ('double')stringТип точки (одинарная или двойная)
orientationdata-orientation'horizontal' ('vertical')stringориентация слайдера (вертикальная или горизонтальная)
themedata-theme'base' ('fox' , 'dark', 'classic')stringПередайте название темы. CSS-селектор должен иметь имя типа .rs-[имя] (например, .rs-base)
mindata-min0 (-n, n.n..)numberМинимальное значение диапазона
maxdata-max10 (-n, n.n..)numberМаксимальное значение диапазона
todata-to2 (-n, n.n..)numberПоложение второй точки
fromdata-from1 (-n, n.n..)numberПоложение первой точки
stepdata-step0 (n, n.n.. <= max-min)numberШаг перемещения точки
keyStepOnedata-key-step-one0 (max-min)numberШаг перемещения точки по клавише клавиатуры однократным нажатием
keyStepHolddata-key-step-hold0 (max-min)numberШаг перемещения точки при удержании клавиши на клавиатуре
bardata-barfalsebooleanВид индикатора диапазона (показан или скрыт)
tipPrefixdata-tip-prefix'' (char…)stringПрефикс для подсказок (максимум 15 символов)
tipPostfixdata-tip-postfix'' (char…)stringПостфикс для подсказок (максимум 15 символов)
tipMinMaxdata-tip-min-maxtruebooleanПросмотр подсказок MinMax (вкл. или выкл.)
tipFromTodata-tip-from-totruebooleanПросмотр подсказок FromTo (вкл. или выкл.)
griddata-gridfalsebooleanПросмотр шкалы (вкл. или выкл.)
gridSnapdata-grid-snapfalsebooleanТочка может останавливаться между метками шкалы (да или нет)
gridNumberdata-grid-num0 (n, n.n..)numberКоличество интервалов, на которые разбита шкала
gridStepdata-grid-step0 (n, n.n..)numberКоличество шагов в интервале
gridRounddata-grid-round0 (n)numberДробное округление
disableddata-disabledfalsebooleanПолзунок включен или отключен
onStartnullFunctionВызвать callback-функцию после первого запуска плагина и передать в качестве аргумента объект текущих данных конфигурации
onChangenullFunctionВызывать callback-функцию после каждого взаимодействия пользователя с ползунком и передавать в качестве аргумента объект текущих данных конфигурации
onUpdatenullFunctionВызвать callback-функцию после вызова метода update и передать в качестве аргумента объект текущих данных конфигурации
onResetnullFunctionВызвать callback-функцию после вызова метода «сброс» и передать в качестве аргумента объект текущих данных конфигурации

Детали:

  • только одно из значений gridNumber или gridStep может быть установлено для шага шкалы. Если они оба установлены, gridStep будет игнорироваться
  • gridSnap игнорируется, если установлен один из параметров step, keyStepOne, keyStepHold
  • step игнорируется при управлении с клавиатуры, если установлен один из параметров keyStepOne, keyStepHold

Настройка и команды (сборка проекта, запуск, тестирование, продакшен)

  • Node version v14.18.1

Установите зависимости:

npm i

Запустить сервер разработки:

npm start
    go to http://localhost:8080/

На рабочем сервере создайте файлы пакетов:

npm run build

Сборка только плагина:

npm run plugin

Тестирование плагина:

npm run test


Демо плагина:

Открыть в новой вкладке