Модуль кастомизации элемента SELECT «Чертоги Фрилансера» v3.0.0

Модуль кастомизации элемента SELECT «Чертоги Фрилансера» v3.0.0

Модуль позволяет сколь угодно стилизовать стандартный элемент формы SELECT и его пункты OPTION, а также реализует дополнительные возможности.

Подключение модуля

[HTML] В нужном месте вызвать снипет sel , редактировать HTML-код селекта под свои нужды
[SCSS] Раскомментировать строку @import “select”; в файле src/scss/base/forms/forms.scss – это подключит базовые стили селекта, отредактировать под свои нужды
[JS] Раскомментировать строку import ‘./libs/select.js’ в файле js/app.js

Настройка и функционал модуля

Для подключения того или иного функционала модуля используются разные HTML-атрибуты

Атрибуты для тега <SELECT>:

  1. multiple – мультивыбор
  2. disabled – недоступен
  3. data-class-modif=имя класса – модификатор к конкретному селекту. В результате получится select select_имя класса
  4. data-tags – режим тегов (только для multiple) позволяет вставлять выбранные значения в виде тегов с крестиком для удаления. Также есть возможность выводить эти тэги в любом указанном месте, указав селектор блока как значение атрибута
  5. data-scroll – включит прокрутку списка, дополнительно можно подключить кастомный скролл simplebar в js/app.js. Указанное число для атрибута ограничит высоту контейнера выпадающего списка
  6. data-checkbox (в работе) – стилизация элементов по checkbox (только для multiple)
  7. data-show-selected – отключает сокрытие выбранного элемента
  8. data-search – позволяет искать по списку
  9. data-speed – позволяет указать скорость открытия/закрытия списка в миллисекундах по умолчанию 150
  10. data-open – селект открытый сразу
  11. data-submit – отправляет форму при смене селекта
  12. data-pseudo-label=заголовок – добавляет псевдоэлемент в заголовок селектора с указанным текстом, а также класс _select-pseudo-label

Атрибуты для тега <OPTION>:

  1. data-class=имя класса – добавляет класс
  2. data-asset=путь к картинке или текст – добавляет в элемент списка структуру двух колонок с указанными данными
  3. data-href=адрес ссылки – добавляет ссылку к элементу списка
  4. data-href-blank – откроет ссылку в новом окне

Атрибуты для плейсхолдера (плейсхолдер – это <OPTION> с пустым value)

  1. data-label – добавляет label к селектору
  2. data-show – показывает плейсхолдер в списке (только для единичного выбора)

Атрибуты для других элементов

  1. data-one-select – селекты внутри объекта с этим атрибутом будут открываться только по одному. То есть при открытии селекта другой открытый селект закрывается.

Пример селекта с некоторыми атрибутами

<select data-submit data-scroll name="form[]" data-class-modif="form">
	<option value="" selected>Плейсхолдер</option>
	<option value="2">Пункт</option>
	<option data-href="about.html" value="3">Пункт ссылка</option>
	<option value="4">Пункт</option>
</select>

Классы, формируемые модулем

  1. select – Главный блок
  2. select__body – Тело селекта
  3. select__title – Заголовок
  4. select__value – значение в заголовке
  5. select__label – Лейбл
  6. select__input – Поле ввода
  7. select__text – Оболочка текстовых данных
  8. select__link – Ссылка в элементе
  9. select__options – Выпадающий список
  10. select__scroll – Оболочка при скроле
  11. select__option – пункт
  12. select__content – ​​Оболочка контента в заголовке
  13. select__row – Ряд
  14. select__asset – Дополнительные данные
  15. _select-disabled – Запрещено
  16. _select-tag – Класс тега
  17. _select-open – Список открыт
  18. _select-active – Список избран
  19. _select-focus – Список в фокусе
  20. _select-multiple – Мультивыбор
  21. _select-checkbox – Стиль чекбокса
  22. _select-selected – выбранный пункт
  23. _select-pseudo-label – Псевдолейбл для заголовка селекта

События

После каждого выбора элементы селективного срабатывает событие selectCallback , его можно отловить в любой части кода:

document.addEventListener("selectCallback", function (e) {
	// Селект 
	const currentSelect = e.detail.select;
});

Расположение и дополнительные данные

Класс SelectConstructor находится в файле js/libs/select.js

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Что будем искать? Например,Человек

Мы в социальных сетях