Skip to content

jQuery plugin: Slider

Notifications You must be signed in to change notification settings

alagunoff/slider

Repository files navigation

Slider

Клонирование репозитория

ssh https
git@github.com:alagunoff/slider.git https://github.com/alagunoff/slider.git

Npm

Сборка dev Сборка prod Тест
npm run start npm run build npm run test

Подключение слайдера на страницу

Подключаем следующие файлы:

  1. Стили плагина
  2. Скрипт плагина

И инициализируем плагин на странице посредством вызова метода rangeSlider на элементе.

$('#example').rangeSlider();

Параметры

Option Default Type Description
min 0 number Минимальное значение слайдера
max 100 number Максимальное значение слайдера
step 1 number Шаг передвижения ползунка. Не может быть меньше 1
firstValue 0 number Текущее значение слайдера. При hasInterval: true - значение "от"
secondValue null number or null Если hasInterval: true - значение "до"
hasInterval false boolean Тип слайдера. При false - одиночное значение, при true - диапазон
hasTip false boolean Подсказка над бегунком
isVertical false boolean Вид слайдера. При false - горизонтальный, при true - вертикальный
theme "aqua" string Тема слайдера. Имеется две темы - aqua и red
onChange null function Функция которая вызывается при инициализации слайдера на странице и при изменении слайдера. Параметром передается состояние слайдера

Публичные методы

Чтобы использовать публичные методы, необходимо сохранить экземпляр плагина в переменную

// Идентифицировать плагин
const $example = $('#example').rangeSlider();

// Сохранить экземпляр плагина
const exampleData = $example.data('rangeSlider');

// Использовать метод
exampleData.update();

Имеется один публичный метод

// Метод update - обновляет слайдер с новыми параметрами
exampleData.update({
  min: 10,
  firstValue: 40,
  hasTip: true,
});

Архитектура приложения

Приложение поделено на 3 слоя, реализованные с помощью классов, в соответствии с паттерном проектирования MVP (Model-View-Presenter), где:

  • Model (модель) - данные приложения
  • Slider (представление) - внешний вид приложения. Этот слой в свою очередь поделен на подслои
  • Presenter (презентер) - слой-посредник между Model и Slider

Взаимодействие слоев друг с другом осуществляется с помощью паттерна Observer. Который реализован с помощью вспомогательного класса Observer

Зоны ответственности в приложении поделены между:

  • Model - взаимодействует напрямую с данными в приложении. Хранит и перезаписывает, отдает по запросу презентера и уведомляет подписчиков о своем обновлении.
  • Slider - единственный видный пользователю слой, с которым тот взаимодействует тем самым передавая команды презентеру и получая через него же новые данные из модели для отображения. Поделен на подслои:
    • ProgressBar
    • Scale
    • Runner
      • Tip
  • Presenter - создает Model, Slider, Presenter. Получает данные из представления, на основе которых обновляет модель и затем обновляет представление на основе обновленных данных в моделе

UML-диаграмма приложения

range-slider uml diagram