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

Аватар пользователя ako28 ako28 21 января в 18:21

Всем привет. Использую D7 и AdaptiveTheme. Меню работает исправно и вызывается через стандартный js темы - menu-toggle.js
Но есть неприятная особенность – меню раскрывается на долю секунды при открытии / обновлении страницы и затем исчезает.

Долго пытался исправить, менял местами очередность загрузки js, css ничего не получилось. Нашел такую же проблему в issue темы:

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

И вот так я понял, почему я ничего не мог с этим поделать. Я был нацелен на класс h2 .at-menu-toggle, когда этот класс не был включен, пока не загрузился JavaScript. Это работало просто отлично:
nav#block-nice-menus-1, div#block-search-form {
h2.block-title {
display: none;
}
}

Правильно, JS не будет запускаться до тех пор, пока не будет загружен весь документ, но браузер начнет загрузку сверху вниз.

а я нацелен на класс

@media only screen and (max-width: 768px)
.at-mt .menu-toggle {
    display: none;
    margin: 13px 0;
}

Это стандартно и это работает, но с этим багом.

Чувствую, что решение где-то близко, особенно это issue, но не пойму, что не так. При загрузке DOM документа, скрипта menu-toggle (или самого html элемента .menu-toggle) не существует?
И как только скрипт (или DOM создается) появляется класс menu-toggle и срабатывает с задержкой мое свойство display none?

Как это можно исправить?

Извините, если сумбурно описал.

0 Thanks