Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

color-range-slider

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

color-range-slider

range-slider

  • 1.1.8
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
16
increased by433.33%
Maintainers
1
Weekly downloads
 
Created
Source

Color slider

Demo color slider

Slider

Установка

npm install

Режим работы

// develop
npm run start

// production
npm run build

// deploy gh pages
npm run deploy

// Запустить тесты
npm run test

// eslint
npm run lint

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

Для подключения плагина необходимо:

  • Подключить jquery к своему проекту
  • Подключить файлы slider.js и slider.css к своему проекту

Для установки через npm

  • https://www.npmjs.com/package/color-range-slider
  • Выполнить npm i color-range-slider
  • Сделать импорт из node_modules например:
  • import '../../../node_modules/color-range-slider/dist/slider.js'
  • import '../../../node_modules/color-range-slider/dist/slider.css'

Для создания слайдера c настройками "по умолчанию" выполните:

создать в html

<div class='slider'></div>

Js

$('.slider').colorSlider();

Для создания слайдера с пользовательскими настройками:

$('.slider').colorSlider({
    gradient: 'blue',
    color: 'yellow',
    orientation: "vertical",
    max: 100,
    from: 30,
    to: 70
});

Доступные настройки

Название свойстваПо умолчаниюОписаниеТипы
typedoubleОдин бегунок либо диапазонstring "single"/"double"
orientationhorizontalВертикальный/Горизонтальный видstring "vertical"/"horizontal"
min0Минимальное значениеnumber,все number могут быть -, или дробными
max10Максимальное значениеnumber
step1шаг может быть дробнымnumber
from3начальная позиция первого бегункаnumber
to7начальная позиция второго бегункаnumber
postfixpostfix/prefix для tooltipлюбое значение
isPostfixtrueпоказать/скрыть postfix/prefix для tooltipboolean
isPrefixfalseдобавить/заменить prefix/postfixboolean
isLabeltrueпоказать/скрыть сами tooltips над бегункамиboolean
isScaletrueпоказать/скрыть шкалуboolean
color'orange'цвет первого бегунка, части бара если включен градиент, либо цвет всего слайдерацвет в 16-ом формате #fff, либо например green/red
isScalePostfixtrueпоказать/скрыть postfix/prefix шкалыboolean
scalePostfixpostfix/prefix шкалылюбое значение
minMaxfalseпоказать/скрыть min и max по краям слайдераboolean
fromTofalseпоказать/скрыть from и to по краям слайдераboolean
isTrackPostfixtrueпоказать/скрыть postfix/prefixboolean
trackPostfixpostfix/prefixлюбое значение
isColortrueизменять цвет или нетboolean
changeColortrueсменить оттенокboolean
isChangeColortrueиспользовать только css цветаboolean
isGradienttrueвключить/выключить градиентboolean
gradient'purple'второй цвет для создания градиента#fff, green/red и.т.д
gradientDeg45градус направление градиентаnumber
isColorOutfalseвыводить значение текущего цвета вместо значенийboolean
isSeparatetrueвкл/выкл делитель ' ' 10000 10 000boolean
separate' 'по умолчанию равен пробелупринимает точку/запятую ' ' . , либо будет ' '
onlyDivisionsfalseоставить только деления шкалыboolean

API Методы

названиеописание
changeПозволяет сменить любой параметр
getValueПозволяет получить любой актуальный параметр
Результат примера на дэмо странице сверху
  • Для изменения слайдера например через custom-button
  • Вызвать метод change с необходимыми параметрами
$('.js-custom-button').click(() => {

  $('.js-test-slider').colorSlider('change', {color: "red", gradient: "blue", max: 1000, from: 200, to: 800, onlyDivisions: true, fromTo: true})
  
})

Для вывода информации в custom инпуты нужно:

  • Создать инпуты
  • Вызвать метод getValue с функцией и выводить любой параметр
  • Обратившись через точку, например: values.from
$('.js-test-slider').colorSlider('getValue',(values) => {   
    $('.js-custom-from').val(values.from);    
    $('.js-custom-to').val(values.to); 
});    

Для того что бы все изменения сохранялись:

  • Нужно сохранить текущие параметры с которыми был создан слайдер
  • Потом эти параметры обновлять при следущих изменениях
  • Это может понадобиться, если нужно будет менять значения в инпутах на прямую и что бы слайдер на них реагировал
  let state = { gradient: 'blue',
    color: 'yellow',
    orientation: "vertical",
    max: 100,
    from: 30,
    to: 70 }

 $('.slider').colorSlider(state);

 $('.js-test-slider').colorSlider('change', {
 
 from: 2, ...state   }

Архитектура

Плагин выполнен согласно шаблону проектирования MVP (Model-View-Presenter).

Модель. Класс Model

Модель выполняет бизнес логику и уведомляет EventEmitter об изменениях состояния, Модель ничего не знает о Виде и Презентере

Представление (или Вид). Класс View

Вид не знает о Модели и Презентере. Он содержит логику связанную с отображением слайдера, и действия юзера, делится на подвиды subView где каждый подвид является элементом слайдера. Так же он уведомляет об новых изменениях EventEmitter. Подвиды не знают не чего о Виде и о других подвидах, и изменяются получая новое состояние которое им обновляет Вид.

Представитель. Класс Presenter

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

Track subView, подвид. Класс Track

subView класс который рисует трэк, и создаёт 2 элемента для вывода значений в начале и в конце трэка. Не обращается к другим классам, не уведомляет об изменениях.

Bar subView, подвид. Класс Bar

subView класс который рисует бар,и изменяет цвет от изменения состояния Вида, не обращается к другим классам, не уведомляет об изменениях.

Scale subView, подвид. Класс Scale

subView класс который рисует шкалу, и создаёт деления шкалы в зависимости от максимального и минимального значения, не обращается к другим классам, и не уведомляет об изменениях.

Rollers subView, подвид. Класс Rollers

subView класс который рисует 2 бегунка, и 2 tooltip для бегунков, изменяет цвет от изменения состояния Вида и своего положения, не обращается к другим классам и не уведомляет об изменениях.

EventEmitter, паттерн для обмена информацией. Класс EventEmitter

Класс который получает уведомление об изменении состояния у Вида или Модели и уведомляет об этом Презентера.

UML

На графике у нас выходит 3 основных слоя и 4 подвида, связь между слоями слабая, что позволяет разрабатывать слои по отдельности, Вид расширяет базовые параметры, и передает их в подвиды для большей их независимости.

License ISC

Copyright (c) 2021 Igor Pichnenko

FAQs

Package last updated on 05 Mar 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc