Подменю заголовка

:discourse2: Краткое описание Header Submenus позволит вам создать меню в шапке сайта — с подменю — используя обычный текст!
:eyeglasses: Предварительный просмотр Предварительный просмотр в Discourse Theme Creator
:hammer_and_wrench: Ссылка на репозиторий https://github.com/discourse/discourse-header-submenus
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

Установить этот компонент темы

Возможности

Настольные компьютеры

Мобильные устройства

Настройки

Название Описание
Элементы меню Добавьте элементы меню. По одному элементу на строку в следующем порядке: Текст, иконка, заголовок, отображение.
Элементы подменю Добавьте элементы подменю. По одному элементу на строку в следующем порядке: Родитель, текст, иконка, URL, цель, заголовок.
SVG-иконки Укажите классы иконок FontAwesome для каждой иконки, используемой в списках выше.
Фиксированный режим Принудительно отображать меню в верхней части экрана независимо от позиции прокрутки — только для настольных компьютеров
Показывать стрелку Показывать стрелки рядом с элементами меню
Инвертировать позицию Отображать элементы меню на противоположной стороне экрана
Фон меню Цвет фона меню. (hex, rgb, rgba или название цвета CSS)
Цвет элементов меню Цвет элементов меню. (hex, rgb, rgba или название цвета CSS)
Фон активного элемента меню Цвет фона элементов меню при их активации. (hex, rgb, rgba или название цвета CSS)
Цвет активного элемента меню Цвет элементов меню при их активации. (hex, rgb, rgba или название цвета CSS)
Фон подменю Цвет фона подменю. (hex, rgb, rgba или название цвета CSS)
Цвет элементов подменю Цвет элементов подменю. (hex, rgb, rgba или название цвета CSS)
Фон элемента подменю при наведении Цвет фона элементов подменю при наведении курсора. (hex, rgb, rgba или название цвета CSS)
Цвет элемента подменю при наведении Цвет элементов подменю при наведении курсора. (hex, rgb, rgba или название цвета CSS)
Цвет разделителя Цвет линий-разделителей в подменю. (hex, rgb, rgba или название цвета CSS)

Существует четыре группы настроек

  1. Элементы меню

    Введите элементы, которые должны отображаться в меню. По одному элементу на строку, разделенному запятыми, в следующем порядке

    Текст, иконка, заголовок, отображение

    Текст: то, что отображается в меню.
    Иконка: иконка, отображаемая рядом с элементом. Если вы не хотите использовать иконку, введите none.
    Заголовок: текст, который появляется при наведении курсора на элемент.
    Отображение: выберите, на каких устройствах будет отображаться элемент.

    ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ vdm отображается как на настольных компьютерах, так и на мобильных устройствах
    ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ vdo отображается только на настольных компьютерах,
    ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ vmo отображается только на мобильных устройствах.

    Из-за нехватки места не рекомендуется добавлять более 3-4 элементов на мобильных устройствах.

  2. Элементы подменю

    Введите список элементов подменю, которые вы хотите добавить в ваше меню. По одному элементу на строку, разделенному запятыми, в следующем порядке

    Родитель, текст, иконка, URL, цель, заголовок

    Родитель: имя родительского элемента меню, под которым должен отображаться этот элемент подменю. Используйте значение текст из списка выше.
    Текст: текст, который отображается для этого элемента подменю.
    Иконка: иконка для этого элемента подменю, используйте none, если иконка не нужна.
    URL: путь, на который ссылается этот элемент меню. Можно использовать относительные пути.
    Цель: выберите, будет ли этот элемент открываться в новой вкладке или в той же. Используйте blank, чтобы открыть ссылку в новой вкладке, или self, чтобы открыть ее в той же вкладке.
    Заголовок: текст, который появляется при наведении курсора на элемент.
    Разделители: Вы также можете добавлять разделители между элементами подменю. Чтобы добавить разделитель, используйте родитель, divider.

Вот быстрый пример, охватывающий пункты 1 и 2 выше:

Допустим, я хочу добавить элемент меню с названием Design и добавить несколько элементов в его подменю следующим образом

Сначала я введу это как menu_item

Design, magic, Get inspired!, vdm

А затем введу это как элементы sub_menu

Design, Galleries, th, #, blank, Cool galleries for you to look at.
Design, Design process, lightbulb-o, #, blank, Learn the basics.
Design, Blog design, columns, #, blank, What makes for a great blog?
Design, divider
Design, Freebies, gift, #, blank, Everyone likes freebies!
Design, Photoshop tutorials, book, #, blank, Photoshop for beginners.
Design, Design trends, bar-chart, #, blank, Stay on top of the current trends!

Вот и всё!

По умолчанию тема поставляется с меню-заглушкой, поэтому посмотрите на него и задавайте вопросы, если они возникнут.

  1. Параметры макета.

    Эти параметры довольно понятны

  2. Параметры цвета

    По умолчанию они пустые, но если вы добавите здесь цвет, он переопределит значения по умолчанию компонента, которые основаны на текущей цветовой схеме.


:discourse2: Размещено у нас? Компоненты тем доступны для использования на наших планах Standard, Business и Enterprise.

90 лайков

Я только что обновил этот компонент.

Визуальных изменений нет, и если вы добавили собственный CSS в свою тему, всё должно работать как прежде, так как у компонента остались те же классы.

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

Помимо этого, обновление добавляет только одну новую функцию: теперь подменю будут отображаться при наведении курсора на десктопе, а не только по клику.

14 лайков

Отличное обновление, Джо! На мобильном я столкнулся только с двумя проблемами:

  1. Если пунктов меню много, больше нельзя прокручивать вправо-влево.
  2. При нажатии на пункт в выпадающем меню оно остаётся открытым.
2 лайка

Это должно работать, но только в мобильном представлении. Поэтому, если вы просто тестируете это в браузере в режиме эмуляции мобильного устройства без изменения user agent, оно не сработает. Пожалуйста, подтвердите, что вы тестируете это на реальном телефоне. Если да, сообщите, какое устройство и браузер вы используете.

Я тоже это наблюдаю. Причина в том, что вся логика открытия и закрытия выпадающих меню теперь обрабатывается через CSS вместо JavaScript. Я не думаю, что в CSS есть способ автоматически закрывать выпадающее меню после клика. Поэтому для этой конкретной проблемы нам придется вернуться к использованию JavaScript. Я займусь этим после того, как вы подтвердите проблему с прокруткой на мобильном устройстве.

2 лайка

Это на iPhone 8 с приложением Discourse, то же самое в Safari. Спасибо, Джо!

2 лайка

Какие-то новости по этому поводу, Джо? Спасибо!

На сайте сообщества Sponge это реализовано красиво: интеграция находится в основном заголовке, а не отдельным слоем сверху:

Как этого добиться? Нам бы очень хотелось такое же решение для нашего сайта.

4 лайка

Возможны ли подменю для ссылок в шапке? Этот компонент темы добавляет новое меню над шапкой, но некоторые пользователи не хотят создавать новое навигационное меню. Им просто нужно, чтобы при наведении на текущие ссылки в шапке появлялись подменю.

5 лайков

Это приятно. Интересно, как они это сделали.

1 лайк

У кого-то есть такая проблема? Иконки социальных сетей не работают (раньше работали), и даже при использовании другого шрифта FA они не отображаются.

1 лайк

Вы пробовали префикс fab, так как это бренды, им нужен этот префикс.

1 лайк

Спасибо за ваш ответ, @davidkingham. Я добавил префикс fab, но логотип не отображается.

1 лайк

Не забудьте отредактировать иконки в списке ссылок, в них также необходимо добавить префикс fab-

4 лайка

Бинго! Именно так :slight_smile: Большое спасибо!

2 лайка

Привет! Не уверен, в чём причина, но настройка «Menu-item-active-background» работает некорректно. Мне казалось, что она должна просто менять цвет фона меню при наведении, но выбранный цвет полностью перекрывает текст. Посмотрите здесь…

Также настройка под ней «Menu-item-active-color» кажется нерабочей. Я пробовал разные цветовые коды, но при тестировании ничего не меняется.

Есть какие-то идеи?

2 лайка

Я бы хотел разместить подменю под заголовком сайта, а не сверху. Не могли бы вы подсказать, как это сделать? Пример кода был бы очень полезен :pray:

1 лайк

@Johani @davidkingham Вы нашли решение этой проблемы: «При нажатии на элемент в выпадающем списке он остаётся открытым»?

Спасибо.

1 лайк

Нет, это всё ещё происходит. Один из возможных вариантов — показывать на мобильных устройствах только иконки без текста. Что вы думаете?

1 лайк

Как отображение только иконок на мобильных устройствах решает проблему? «При нажатии на элемент в раскрывающемся списке он остается открытым»

1 лайк

@ElForoViajero Ваши подменю, кажется, работают нормально как на десктопе, так и на мобильных устройствах. Как только вы нажимаете на элемент меню, экран обновляется, и меню автоматически закрывается. Вам пришлось что-то особенное сделать?

1 лайк