- PVSM.RU - https://www.pvsm.ru -

jQuery CoreUISelect — плагин для стилизации селекта

На Хабре уже проскальзывали обзоры плагинов для стилизации селекта (раз [1] и два [2])

Возможно буду заброшен помидорами за изобретение очередного велосипеда, но все текущие реализации меня не устраивали. Да, отличный плагин chosen [3], но в нем чрезмерное количество ненужного мне функционала. ikSelect [2], да, почти то что надо, но мне не понравилась генерируемая разметка.

jQuery CoreUISelect — плагин для стилизации селекта [4]

Итак, задача — сделать плагин с блэкджеком и ш… для стилизации селекта, который по максимуму повторяет поведение стандартного. А это навигация с клавиатуры, автоподгонка ширины дропдауна, поддержка optgroup, автокоплит и самое главное полная кастомизация, включая скроллбар*.

* Для поддержки кастомного скролла нужен плагин jScrollPane [5]

Спустя несколько дней, получился вполне работоспособный плагин, гордо названный jQueryCoreUISelect

Есть API, совсем небольшой состоящий из 5 коллбеков:

$('.b-core-ui-select__select').сoreUISelect({
    onInit : addCoreUISelectListener,
    onOpen : addCoreUISelectListener,
    onClose : addCoreUISelectListener,
    onChange : addCoreUISelectListener,
    onDestroy : addCoreUISelectListener
});
 
function addCoreUISelectListener(select, event){
    console.log(el, event);
}  

И пара внешних методов (для полноценной жизни вполне хватает):

$('.b-core-ui-select__select').сoreUISelect('update');
$('.b-core-ui-select__select').сoreUISelect('destroy');

Под iPhone, iPad, Android включается адаптация, т.е. внешний вид выпадающего dropdown уже зависит от системы. В Opera Mini плагин выключается полностью.

jQuery CoreUISelect — плагин для стилизации селекта
Под iPad

jQuery CoreUISelect — плагин для стилизации селекта
Под iPhone

Демо и исходники см. ниже, форкаем, ругаем, предлагаем.
Спасибо за внимание!

Ссылка на демо [4]
Ссылка на GitHub [6]

Автор: shaggysmile


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/11939

Ссылки в тексте:

[1] раз: http://habrahabr.ru/company/aiken/blog/114927/

[2] два: http://habrahabr.ru/post/139388/

[3] chosen: http://harvesthq.github.com/chosen/

[4] Image: http://shaggysmile.github.com/jQueryCoreUISelect/

[5] jScrollPane: http://jscrollpane.kelvinluck.com/

[6] GitHub: https://github.com/shaggysmile/jQueryCoreUISelect/