Разработчики браузеров не хотят внедрять вменяемую поддержку стилизации/кастомизации через css, ссылаясь на консистентность графического интерфейса. Однако, это идёт вразрез с воспаленными фантазиями web-дизайнеров, которые порой рисуют такое, что хочется
И тут к нам на помощь приходит javascript. На сегодняшний день существует масса скриптов и плагинов, которые позволяют буквально в несколько строк изменить внешний вид элемента и при этом сохранить его функциональность (а иногда даже улучшить). Качество и размер этих скриптов варьируются в очень широких пределах, попадается как откровенный говнокод, так и шедевры, в которые вложены сотни и тысячи человекочасов.
3 года назад мне понадобилось реализовать нестандартную полосу прокрутки и я привычно пошёл гуглить. Однако, спустя несколько дней поисков и проверок, я пришёл к выводу, что для этого дела нет ничего качественного, были сырые недоделки с багами, отсутствовала какая-либо нужная мне функциональность или они весили слишком много. В общем, я решил написать свой скрипт с преферансом и танцовщицами. А так как я активно работал с jquery, то оформить я его решил в виде плагина к ней.
Ладно, заканчиваю графоманствовать и перехожу к сути.
Плагин: https://github.com/Invis1ble/scrollbox
Демо: https://invis1ble.github.io/scrollbox/
Поддержка: IE7+, Opera (старая и новая), Chrome, Safari, Firefox, Chrome for Android и др.
Лицензия MIT.
Внешний вид полностью настраивается через стили. Есть API.
В планах на отдаленное будущее: добавить поддержку клавиатуры
_____________
Профессиональная разработка на заказ
Я на GitHub | второй профиль