Как добавлять и удалять отдельный пункт меню в зависимости от разрешения экрана динамически?
Добрый вечер!
Есть полноценное меню и ссылка на страницу этого же сайта, отделенная от этого меню логотипом, находящиеся на одном уровне. При уменьшении размера окна браузера это меню падает под логотип, и нужно добиться того, чтобы та отдельная ссылка была частью меню, и отображалась корректно, а при увеличении размера окна - соответственно, отделялась, от меню, как в изначальном положении. Это как-то реализуется?
azerphoenix, Мне небязательно, чтоб это был телефон, допустим, есть ширина окна 1000px, вот от этого и плясать. Самое интересное это добавление пункта)
azerphoenix, Если уж заниматься таким непортребством, то лучше отправляться из жс на бек размер вьюпорта и плотность пикселей, а пхп их занесет в сессию
В принципе, у WordPress есть полезная функция wp_is_mobile(), которая возвращает булевое true/false. Она разделяет десктопы и мобильные устройства (планшеты, смартфоны). И это происходит на стороне PHP, то есть – на сервере. Впрочем, в вашем случае лучше решать с помощью CSS и media queries.
Игорь, может она и полезная, но мне это нужно реализовать и на десктопе. То есть подгонять вручную и симулировать целостность меню? Или может лучше через JS его кидать к тому меню?
Илья, так она как раз вам и позволяет это сделать:
if ( wp_is_mobile() ) { // true -> мобильное устройство
} else { // false -> десктоп
}
Но, как я написал в ответе, лучше делать через CSS. Выводите нужный пункт меню на фронтенд всегда. Через редактор меню назначьте нужному пункту произвольный CSS-класс, чтобы легко его таргетировать, и с помощью media query показывайте или прячьте когда надо. Делать это на серверной стороне - не совсем правильно.
Игорь, а у меня не на всех разрешениях десктопа надо так менять меню, т.е. тут еще нужна тогда проверка на ширину окна, ну это другая история. Хорошо, допустим, я задал класс тому пункту меню, но ведь мне его не надо скрывать, он всегда на виду должен быть. Таргетировать это хорошо, но мне его не нужно скрывать, а просто кидать то в меню, то из меню.
Илья, сделайте 2 меню, одно только с этим одним пунктом, второе - обычное ваше меню (но тоже с этим пунктом). И включайте-выключайте этот ваш пункт в одном из меню когда надо, с помощью CSS.