jQuery Вертикальное подменю мегаменю мигает при загрузке. Как остановить его от перепрошивки в WordPress
У меня есть WordPress веб-сайт на тему "Двадцать одиннадцать детей". В боковую панель я встроил виджет вертикального мегаменю jQuery из:
http://wordpress.org/extend/plugins/jquery-vertical-mega-menu/
Меню работает нормально. Единственная проблема заключается в том, что при загрузке веб-сайта происходит короткое FOUC (мигание неустановленного контента).
http://en.wikipedia.org/wiki/Flash_of_unstyled_content
Я не знаю, как это предотвратить. Я прочитал несколько похожих вопросов с решениями, но я не могу понять, как применить его к моей детской теме.
Некоторые говорят, что вы должны добавить jQuery(document).ready(function() {
, Но где? Я попытался добавить его в функции моей дочерней темы.
<?php
....
.....
function id_scripts() {
jQuery(document).ready(function() { echo 'test'});
}
add_action('wp_enqueue_scripts', 'id_scripts');
>
Но это дает мне ошибку разбора, говорящую:
Ошибка разбора: синтаксическая ошибка, неожиданный T_FUNCTION, ожидание ')' в /..../functions.php в строке 28
2 ответа
В качестве продолжения ответа CWSpear я бы порекомендовал создать для этой цели собственный класс CSS, который вы также можете применять к любым другим элементам, которые должны быть скрыты до активации JS. Мне нравится называть этот класс .js-hide
- Twitter Bootstrap использует .collapse
,
Во-первых, кажется, вы добавляете JavaScript в PHP. Вот почему у вас есть ошибка.
Что касается проблемы с мигающим меню, вы должны установить подменю display: none;
в CSS. Глядя на плагин, он устанавливает его (подменю) display: none;
, но он не срабатывает до тех пор, пока не загружена DOM (что происходит через короткое время после начала загрузки страницы, но достаточно, чтобы увидеть эту "вспышку"), поэтому, установив его в display: none;
в CSS он будет загружен скрытым и откроется при наведении.
В частности, посмотрев на плагин в ссылке, попробуйте добавить следующее в свой CSS:
.dcjq-vertical-mega-menu .sub-container {
display: none;
}