А как вы формируете мобильное меню, что под гамбургером?

Аватар пользователя marassa marassa 17 июля 2020 в 11:58

В десктопной версии есть сразу несколько отдельных меню, раскиданных по разным углам страницы:
- Main navigation
- User account menu
- Language switcher
- Footer
В мобильной версии их надо все убрать под гамбургер, чтобы выползала единая простыня, пусть с разделителями между секциями (которые были отдельными меню в десктопе), а как это сделать без колхоза и ручного дублирования? Нашел несколько модулей, автоматически делающих мобильное меню, но они все предлагают выбрать какое-то ОДНО из существующих меню, а у меня-то их очевидно несколько, и я не думаю, что я один такой. Можно, конечно, создать ещё одно меню специально для мобильной версии, вручную продублировав там все десктопные меню, но это же порнография какая-то?

Комментарии

Аватар пользователя marassa marassa 17 июля 2020 в 12:09

То есть не пользоваться ущербными готовыми друпаловскими интеграциями с mmenu, а тупо в js пройтись по всем нужным меню и перекидать все пункты в mmenu? В общем не самый ужасный вариант. Единственное, что расстраивает - mmenu, даже lite - довольно тяжеловесная штука. Сайт потихоньку обрастает жутким количеством чужого js-кода, 90% которого не исполняется никогда Sad

Аватар пользователя vlucas vlucas 17 июля 2020 в 12:12

сморя что пишите - если чудоговнокод - то да обрастает, а если всё грамотно то нет. Я вообще не сторонник друпаловских модулей для такого рода библиотек. Проще и чище самому либу подключить.

Аватар пользователя Selpi Selpi 17 июля 2020 в 12:25

Можно, конечно, создать ещё одно меню специально для мобильной версии, вручную продублировав там все десктопные меню, но это же порнография какая-то?

Как раз наоборот, практика показывает, что это самый надежный и универсальный метод. Да, требует ручной работы, но будем откровенны, на любом более-менее вменяемом сайте меню меняется не сказать, чтоб часто.
Автоматизировать конечно можно, если есть железобетонное ТЗ и понимание того, как будет или не будет развиваться конкретный проект. На практике это означает, что написание кастома под такой проект чаще всего занимает больше времени и ресурса, чем тупо создать отдельное меню ручками и поменять там что-то раз в год, а то и реже.

Аватар пользователя vlucas vlucas 17 июля 2020 в 12:58

очень спорно. Там кастома 3 строчки - склонировал все меню js - положил в mmmenu и забыл.

Аватар пользователя Selpi Selpi 17 июля 2020 в 13:28

Я немного про другое. Часто приходится в мобильном меню сокращать количество пунктов, иногда переименовывать их, в некоторых случаях даже переадресовывать на какие-то промежуточные страницы, чтобы не отягощать меню вложенностью. В результате чаще всего лучший вариант- самостоятельное мобильное меню, набитое вручную, и несколько строчек css/js чтоб придать ему нужный вид, вместо попыток писать кастомный модуль, где автоматизировать создание такого меню.

Аватар пользователя vlucas vlucas 17 июля 2020 в 14:34

Ну ХЗ, мы никогда не меняем не редактируем и не сокращаем. 100 ссылок - вполне всё шустро, проблем нет

Аватар пользователя VasyOK VasyOK 17 июля 2020 в 13:28

Если просто раскрывание под гамбургером - то jQuery: https://jqueryui.com/accordion/ .
Еще можно в модальном окне меню вывести, но это немного не то.

Если покруче надо - модули меню на drupal.org есть.

Аватар пользователя Punk_UnDeaD Punk_UnDeaD 17 июля 2020 в 16:23

яваскриптом переносить элементы при переключении вьюпорта
два раза не выводить

иногда правильнее сделать свой блок, который соберёт навигацию из разных меню, а не 100500 блоков с кучей разметки, на стилизации которых обязательно обосрётся кто-то