Приветствую вас дорогие мои читали сегодня я хотел бы рассказать вам о замечательном jQuery плагине jMenu. Который, как вы наверное уже догадались, по картинке и названию, позволяет создавать выпадающее jQuery меню с неограниченным уровнем вложенности подменю.
Заинтересовало? Ну тогда давайте приступим к знакомству с этим плагином.
Помимо jQuery, плагин jMenu требует jQuery UI, а также поддерживает эффекты этой библиотеки (fadeIn или slideDown).
Разметка меню чиста и красива поскольку использует вложенные списки для создания меню. Внешнее оформление меню полностью настраивается с помощью CSS, поэтому вам нет необходимости копаться в JS коде для настройки внешнего вида меню.
Пример использования
1. Подключение css и javascript файлов
Подключение данного плагина не отличается ни чем от подключения типового jQuery плагина. Код подключения плагина из примера, представлен ниже:
<!DOCTYPE html> <html> <head> ... <link rel="stylesheet" href="css/jMenu.jquery.css" type="text/css" /> <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script> <script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script> <script type="text/javascript" src="js/jMenu.jquery.js"></script> ... </head> <body> ... </body> </html>
2. Создание HTML списка:
Создание меню по своей сути сводится к созданию вложенного списка в HTML разметке страницы с одним не значительным условием: Все ссылки первого уровня должны иметь класс fNiv.
Ниже представлен фрагмент кода с HTML списком:
<!DOCTYPE html> <html> <head> ... </head> <body> ... <ul id="jMenu"> <li> <a class="fNiv">Category 1</a> <ul> <li class="arrow"></li> <li> <a>Category 1.2</a> <ul> <li><a>Category 1.3</a></li> <li><a>Category 1.3</a></li> <li><a>Category 1.3</a></li> <li><a>Category 1.3</a></li> <li> <a>Category 1.3</a> <ul> <li><a>Category 1.4</a></li> <li><a>Category 1.4</a></li> <li><a>Category 1.4</a></li> <li> <a>Category 1.4</a> <ul> <li><a>Category 1.5</a></li> <li><a>Category 1.5</a></li> <li> <a>Category 1.5</a> <ul> <li><a>Category 1.6</a></li> <li><a>Category 1.6</a></li> <li><a>Category 1.6</a></li> <li><a>Category 1.6</a></li> <li><a>Category 1.6</a></li> </ul> </li> </ul> </li> <li><a>Category 1.4</a></li> <li><a>Category 1.4</a></li> </ul> </li> <li><a>Category 1.3</a></li> </ul> </li> <li><a>Category 1.2</a></li> <li> <a>Category 1.2</a> <ul> <li><a>Category 1.3</a></li> <li> <a>Category 1.3</a> <ul> <li><a>Category 1.4</a></li> <li><a>Category 1.4</a></li> <li><a>Category 1.4</a></li> <li><a>Category 1.4</a></li> <li><a>Category 1.4</a></li> <li><a>Category 1.4</a></li> <li><a>Category 1.4</a></li> <li><a>Category 1.4</a></li> </ul> </li> </ul> </li> <li><a>Category 1.2</a></li> </ul> </li> <li> <a class="fNiv">Category 2</a> <ul> <li class="arrow"></li> <li> <a>Category 2.2</a> <ul> <li><a>Category 2.3</a></li> <li><a>Category 2.3</a></li> </ul> </li> <li> <a>Category 2.2</a> <ul> <li><a>Category 2.3</a></li> <li><a>Category 2.3</a></li> <li><a>Category 2.3</a></li> </ul> </li> <li> <a>Category 2.2</a> <ul> <li><a>Category 2.3</a></li> <li><a>Category 2.3</a></li> <li><a>Category 2.3</a></li> <li><a>Category 2.3</a></li> <li><a>Category 2.3</a></li> <li><a>Category 2.3</a></li> </ul> </li> <li><a>Category 2.2</a></li> </ul> </li> <li> <a class="fNiv">Category 3</a> <ul> <li class="arrow"></li> <li> <a>Category 3.2</a> <ul> <li><a>Category 3.3</a></li> <li><a>Category 3.3</a></li> <li><a>Category 3.3</a></li> <li><a>Category 3.3</a></li> <li><a>Category 3.3</a></li> <li><a>Category 3.3</a></li> <li><a>Category 3.3</a></li> </ul> </li> <li> <a>Category 3.2</a> <ul> <li><a>Category 3.3</a></li> <li><a>Category 3.3</a></li> </ul> </li> <li><a>Category 3.2</a></li> <li><a>Category 3.2</a></li> </ul> </li> <li> <a class="fNiv">Category 4</a> <ul> <li class="arrow"></li> <li><a>Category 4.2</a></li> <li><a>Category 4.2</a></li> <li> <a>Category 4.2</a> <ul> <li><a>Category 4.3</a></li> <li><a>Category 4.3</a></li> <li><a>Category 4.3</a></li> <li><a>Category 4.3</a></li> </ul> </li> <li><a>Category 4.2</a></li> </ul> </li> <li> <a class="fNiv">Category 5</a> <ul> <li class="arrow"></li> <li> <a>Category 5.2</a> <ul> <li><a>Category 5.3</a></li> <li><a>Category 5.3</a></li> <li><a>Category 5.3</a></li> <li><a>Category 5.3</a></li> </ul> </li> <li><a>Category 5.2</a></li> <li><a>Category 5.2</a></li> <li><a>Category 5.2</a></li> </ul> </li> <li><a class="fNiv">Category 6</a></li> <li> <a class="fNiv">Category 7</a> <ul> <li class="arrow"></li> <li><a>Category 7.2</a></li> <li><a>Category 7.2</a></li> <li><a>Category 7.2</a></li> <li><a>Category 7.2</a></li> </ul> </li> </ul> ... </body> </html>
3. Применение плагина к HTML списку
Так же как и у всех плагинов jQuery для того, что бы все заработало остается лишь вызвать функцию плагина для HTML списка:
<!DOCTYPE html> <html> <head> ... </head> <body> ... <script type="text/javascript"> $(function() { $("#jMenu").jMenu(); }); </script> </body> </html>
Параметры
Для того, что бы создать свое уникальное меню можно применить параметры к вызову плагина, для этого в качестве первого аргумента функции плагина нужно передать объект параметров, как это показано ниже:
<!DOCTYPE html> <html> <head> ... </head> <body> ... <script type="text/javascript"> $(function() { $("#jMenu").jMenu({ ... 'option': 'option value', ... }); }); </script> </body> </html>
Полный перечень параметров плагина jMenu:
Параметр | Тип | Описание |
---|---|---|
openClick | Boolean | По умолчанию: false. Если установлено в true подменю будет открываться по клику, в противном случае при наведении на родительский пункт меню. |
ulWidth | Integer | По умолчанию: автоматически. Ширина подменю в пикселях. |
absoluteTop | Integer | По умолчанию: 30. Отступ подменю сверху от родительского меню в пикселях. |
absoluteLeft | Integer | По умолчанию: 0. Отступ подменю слева от родительского меню в пикселях. |
effectSpeedOpen | Integer | По умолчанию: 150. Время длительности эффекта при показе подменю в миллисекундах. |
effectSpeedClose | Integer | По умолчанию: 150. Время длительности эффекта при скрытии подменю в миллисекундах. |
effectTypeOpen | String | По умолчанию: slide. Тип эффекта для анимации показа подменю. Может принимать значения ‘slide’, ‘fade’ или » (пустая строка). |
effectTypeClose | String | По умолчанию: slide. Тип эффекта для анимации скрытия подменю. Может принимать значения ‘slide’, ‘fade’ или » (пустая строка). |
effectOpen | String | По умолчанию: linear. Имя эффекта анимации показа подменю. Поддерживаются все эффекты jQuery UI. |
effectClose | String | По умолчанию: linear. Имя эффекта анимации скрытия подменю. Поддерживаются все эффекты jQuery UI. |
TimeBeforeOpening | Integer | По умолчанию: 100. Время задержки до начала анимации показа подменю в миллисекундах. |
TimeBeforeClosing | Integer | По умолчанию: 100. Время задержки до начала анимации скрытия подменю в миллисекундах. |
animatedText | Boolean | По умолчанию: false. Разрешена или нет анимация отступа текста от левого края пункта меню при наведении. |
paddingLeft | Integer | По умолчанию: 7. Размер отступа для анимации текста при наведении на пункт меню. |