Последние пару дней я ковыряю инеты в поисках подходящего скрипта mega menu. Нашёл много разных вариантов, но всё ещё нахожусь в раздумьях о том, какой из них применить к этому сайту...
Однако, по ходу дела открыл для себя кучу полезных jQuery-плагинов. Например, для выпадающего списка, для замены <select>’a (ну типа «скин» для обычного combo-box’a).
Самое лучшее, что я нашёл — SelectMenu от Феликса Нагеля: http://www.felixnagel.com/blog/artikel/2011/10/09/jquery-ui-selectmenu-reloaded/. Лучше наверно не бывает. Там есть всё, включая реагирование на клавиатуру, фокусировка ввода, разные нестандартные варианты списков, иконки в списке, многострочные списки, и ещё куча всего. (Единственное, не знаю, может ли тот список показывать дополнительную информацию, как выбиралка города при заказе тачки на сайте Sixt. По исходнику вижу что это тоже какой-то jQuery-плагин, но возможно заточенный дизайнерами сайта Sixt индивидуально.)
Да, так вот, несмотря на то что лучшее SelectMenu в мире — от Феликса (как он сам написал, с ним связался автор jQuery, Jörn, и предложил включить SelectMenu в стандартный пакет визуальных плагинов jQuery), — но мне нужно было что-то попроще. Желательно совсем маленькое и простое. Нашёлся плагин MyDropdown, от какого-то чувасика по имени Пол Чан из Гонконга: http://www.kfsoft.info/MyDropdown/demo.php. Это была дико глюкавый скрипт, но кое-то удалось в нём поправить (правда, в QuirkMode IE (ну типа, если DOCTYPE = HTML) оно всё равно не заработало).
Кстати, о моём выборе MegaMenu раскажу ещё на днях. Там могла бы быть обыкновенная CSS-based менюха, без всяких javascript’ов, но нужно таки будет сделать полусекундную задержку перед выпадением меню, при наведении мышкой на пункт. Задержка нужна, потому что случайное выпадение списка при перемещении курсора над меню будет раздражать пользователя.