MMenu сразу после тега body - PullRequest
       24

MMenu сразу после тега body

0 голосов
/ 22 января 2020

enter image description here Есть ли способ переместить навигацию MMenu в другой элемент div с заголовком? Из-за доступности мне нужно, чтобы навигация следовала непосредственно за кнопкой, которая открывает и закрывает мобильную навигацию. Прямо сейчас навигация вставляется сразу после открывающего тега body.

    $("#mmenu").mmenu({
        // options
        offCanvas: {
            position: "right"
        },
        navbars: [
            {
                position: "top",
                height: 1,
                content: [
                    mmenuBookingHtml
                ]
            },
            {
                position: "bottom",
                height: 1,
                content: [
                    mmenuSocialHtml
                ]
            },
            {
                position: "bottom",
                height: 1,
                content: [
                    mmenuPhoneHtml
                ]
            },
            {
                position: "bottom",
                height: 1,
                content: [
                    mmenuSearchHtml
                ]
            }
        ]
    }, {
        // configuration
        offCanvas: {
            pageSelector: ".body-overlay"
        }
    });
                <a class="toggle-mmenu" href="#mmenu" aria-control="#mmenu" aria-expanded="false">
                    <span class="toggle-mmenu__wrap">
                        <span class="toggle-mmenu__bar"></span>
                        <span class="toggle-mmenu__bar"></span>
                        <span class="toggle-mmenu__bar"></span>
                    </span>
                </a>
<?php get_template_part('nav', 'mobile'); ?>

1 Ответ

0 голосов
/ 22 января 2020

MMenu имеет конфигурационную опцию :

menu: {
    insertMethod: 'prepend',
    insertSelector: 'body'
}

Это говорит о том, что он должен предшествовать тегу HTML BODY. Он не указан в объясненных параметрах конфигурации , но присутствует в исходном коде . Как вы можете видеть в исходном коде в строке 53 , он использует этот insertSelector для выбора тега или класса для вставки меню HTML рядом. Вы должны иметь возможность либо передать набор параметров конфигурации с новым выбором insertSelector, либо, в худшем случае, изменить исходный код JS, чтобы жестко закодировать новый селектор, чтобы заставить его внедрять туда, куда вы хотите.

НО, это может сделать меню вести себя шатко. В меню используется фиксированное CSS позиционирование. Помещение этого в другой CSS, который также имеет фиксированное или абсолютное положение, может означать, что меню появляется в странном месте или ведет себя странно, потому что теперь оно наследуется от CSS родительского контейнера и позиционирования. Невозможно сказать, не протестировав его (не увидев все ваши CSS на вашем сайте и как он взаимодействует с меню CSS). Но вы можете попробовать и посмотреть, работает ли это в вашей ситуации. Я предполагаю, что они добавили его к тегу BODY, чтобы избежать этих возможных проблем.

...