Я ищу раскрывающееся меню JavaScript.
Это должно быть самое простое и элегантное доступное меню, которое также работает в IE6 и Firefox 2.
Было бы хорошо, если бы он работал с ненумерованным списком (ul), чтобы пользователь мог использовать страницу без поддержки JavaScript.
Какой из них посоветуете и где найти код такого меню?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, что меню jquery superfish фантастическое и простое в использовании:
http://users.tpg.com.au/j_birch/plugins/superfish/
Javascript - это не требуется, и он основан на простых действительных списках unorder ul.
При чем здесь суперфиш? Это не так.
Я нашел это красивым и простым в настройке. И самое приятное то, что он работает в IE6, IE7 и Firefox (я еще не тестировал с другими).
Почему на все вопросы по JavaScript есть ответы JQuery?
Поскольку JavaScript, HTML DOM и CSS представляют собой такой кластер устаревших «стандартов» подражателей, им пришлось создать оболочку вокруг всего языка и отобразить иерархию, которая действительно пригодна для использования. Просто используйте Flash / AS3.
A List Apart - выпадающие списки
Я бы использовал решение только для css, подобное приведенному выше, поэтому пользователь все равно будет получать раскрывающиеся меню даже с отключенным javascript.
Мне нравится аккордеон крупье, который в зависимости от того, как вы хотите, чтобы он себя вел, может быть хорошим эффектом.
Вот мой ответ с помощью jQuery:
jQuery.fn.ddnav = function() {
this.wrap("");
this.each(function() {
var sel = document.createElement('select');
jQuery(this).find("li.label, li a").each(function() {
jQuery("<option>").val(this.href ? this.href : '').html(jQuery(this).html()).appendTo(sel);
});
jQuery(this).hide().after(sel);
});
this.parent().find("select").after("<input type=\"button\" value=\"Go\">");
var callback = function(button) {
var url = jQuery(button.target).parent("div").find("select").val();
if (url.length)
window.open(url, "_self")
};
this.parent().find("input[type='button']").click(callback);
this.parent().find("select").change(callback);
return this;
};
А затем в вашем готовом обработчике:
$("ul.dropdown_nav").ddnav();
Но я хотел бы отметить, что это ужасно для удобства использования. Лучше использовать список и показывать людям все варианты сразу, и лучше не уходить после выбора и / или не требовать нажатия другой кнопки, чтобы попасть туда, куда они хотят.
Я думаю, вам лучше никогда не использовать вышеуказанное (и я написал код!)
Для пуриста: http://www.grc.com/menudemo.htm Абсолютно никакого JavaScript, только чистый CSS - и работает практически со всеми браузерами.
Небольшая настройка может заставить их выглядеть так же хорошо, как и модные меню (jQuery и т. д.).
Но мы также использовали jQuery, YUI! и другие. ЮЙ! имеет отличные встроенные опции доступности, если это требуется для меню на основе JavaScript.
- Андрей
Я использую такой:
http://www.tanfa.co.uk/css/examples/menu/vs7.asp
Поставляется как в вертикальном, так и в горизонтальном исполнении.
Я был (беззастенчивым) поклонником Yahoo! Библиотека пользовательского интерфейса. У них хорошая система меню, который легко реализовать. Отличная кроссбраузерная поддержка.
Вероятно, вы можете получить что-то подобное и в других популярных фреймворках Javascript, таких как jQuery.
Это пример использования YUI 3 для раскрывающегося меню: jsbin.com/udigof/1
Это хорошо, но я ненавидеть выпадающих меню на веб-страницах, которые выполняют действия без моего нажатия; это приводит к тому, что вещи кажутся непонятными, если я не предпринимал никаких явных действий, чтобы это произошло.