День добрый!
Стоит задача сделать выдвигающиеся меню. Большое меню с множеством ссылок. По умолчанию выводится несколько ссылок 10-15 и триггер "Все услуги" при нажатии выдвигается панель со всеми ссылками меню (оставшемся ссылками меню). Триггер перемещается вниз и меняется на "Закрыть" по клику выпадающая панель закрывается, остаются только первые пункты.
Пробовал menu-minipanels, но там эффект не тот- выводит все ссылки меню по ховер или клику во всплывайке. Попробовал DHTML меню. Тут эффект ближе всего получается, но поведение триггера не смог реализовать. Просто вывел пункт меню "Все услуги" как родителя всех остальных ссылок. По клику открывает пункты меню, но "Все услуги" остаются в составе списка ссылок и вниз переместить не знаю как.
Пример того, что хочется получить https://www.bspb.ru Здесь вот меню услуг такое какое нужно.
Собственно вопрос. Есть ли готовый модуль? Или нужно самописным творчеством заниматься?
Спасибо.
Комментарии
Задачи 2:
1) определить контент который будет в этом "меню". Через views скорей всего.
2) сделать анимацию выезда. Скорей всего через https://jqueryui.com/accordion/
в этом то и вопрос. В аккордеоне тригер остается сверху, а не опускается в низ, т.е. панель открывается под триггер, а не сверху. А мне нужно что бы триггер был внизу, опускался в низ, а само меню открывалось наверх. Сложно объяснить на ссылке примера там видно.
Спасибо за хелп.
Чего тут заниматься?
Показать-скрыть ul по клику + анимация на height.
Автор, вам надо, то что "Частным клиентам" или что, что "Все услуги"?
jquery accordion для любого подходит.
Все услуги
да правильная подсказка за исключением того, что onclick событие уж очень сложно в Друпал прикручивается.
Простой ява кушать не хочет видимо, что-то перекрывает.
Пишу примерно так
$('ul.menu').click(function(){
$('ul.menu').addClass('focus');
}
);
}
);
$('ul.menu', context).click(function() {
$(this).addClass('focus');
});
}}})(jQuery);
Только клик не по менюшке должен быть, а по ссылке. Если брать сайт-пример.
да этот код работает! Спасибо
Мед да еще и ложкой.. Не могу сообразить, как по повторному клику убрать теперь этот класс 'focus'
если .hasClass то .removeClass
Почитайте основы jQuery
или еще проще:
.toggleClass()
лучше .toggle
Огромное спасибо! Решил свою задачу. Все как обычно просто ) Когда знаешь. Учим мат.часть.
https://jsfiddle.net/PlayboyZP/wrvh72c0/ Код открыть/раскрыть такой.
В тему оформления js файл можете подключить?
Еще нужно подключить виджет аккоордеон и желательно убрать лишний CSS от jQuery
template.php:
<?php
drupal_add_library('system', 'ui.accordion');
function
themename_css_alter(&$css) {unset($css['misc/ui/jquery.ui.core.css']);
unset($css['misc/ui/jquery.ui.theme.css']);
}?>
Инструкции тут http://drupalbook.ru/drupal/drupal-i-jquery-urok-1-podklyuchaem-fayl-s-j...
Ваше решение имеет место быть и да же воспользуюсь наверное для кнопки закрыть.
Но как я говорю, что триггер в аккордеоне остается вверху, так и у меня и реализовано через DHTML menu Кнопка "Все услуги" остается вверху, а панель выпадает вниз под кнопку. А нужно, что бы триггер Закрыть появлялся внизу, как у Вас, панельки с меню, а сверху было пусто. http://prntscr.com/iaqgou
В Вашем примере http://prntscr.com/iaqhzs верхняя кнопка остается с ней нужно, что-то делать ))
Поэтому более верное решение предлагает Adano навешивать скрыть показать на кнопку Все услуги.
Спасибо за помощь. Кнопка закрыть мне понадобится ))
Кнопка закрыть к аккордеону привзяана. Adano вам по другому советует.
Чтобы "сверху было пусто"
когда аккордион открывается, у него соотв. CSS класс появляется
и display: none на заголовок
Да Ваше решение вполне рабочее. Но у меня уже было заведено меню выпадающее на dhtml menu переделывать под вывод аккордеоном было бы более по времени затратно.
https://goo.gl/8YgQq6
вообще супер ! То что нужно. Проверю как оно ляжет. Спасибо!
Минус в том, что анимашку на height: auto не повесишь. Т.е. анимация для неизвестного количества элементов не получится таким образом. Если же известно на сколько раскрывать, то вот
в моем случае, поставил для кнопки открыть (тык) height:100% и очень хорошо ведет себя ярлычок открыть закрыть снизу прибивается к открывающемуся блоку с меню. Но я юзал dhtml menu и вешал java поведение на родительский пункт меню. Менял ему класс, а на новый класс - новые свойства. Но Ваш пример я скопировал к себе. Пригодится. Хорошее решение.
Огромное спасибо за отклик. Пробую варианты
Спасибо всем за помощь! Особенно Adano
Тут ценный комментарий Хулигана. Он сделал рабочий пример. Я лишь указал на drupal-way с jquery 1.4.4+