@rtfmmftr
кратко о себе

Как не перекрывать джаваскриптом медиа-запросы?

Допустим, на странице есть меню
С помощью медиа-запроса при ширине окна < 640 оно прячется (через display: none), при этом появляется кнопка-бургер, по нажатию на которую оно появляется обратно путем $('#menu').css('display', 'block'). Если после этого растянуть окно шире 640пх и сжать обратно меню уже не пропадает, так как скрипт добавил правило инлайново. Не самый частый юзкейс, но тем не менее. Как это побороть?
  • Вопрос задан
  • 277 просмотров
Пригласить эксперта
Ответы на вопрос 5
kosolapus
@kosolapus
Если помогло - отмечайте решением
Попробуйте вместо
$('#menu').css('display', 'block')
Сделать что-то вроде
$('#menu').toggleClass('classname')
где
@media screen and (max-width: 640px){
.classname{
display:block
}
}
Ответ написан
Комментировать
@r_zaycev
Добавляйте/убирайте при клике класс для меню, а не инлайновое правило.
Ответ написан
xPomaHx
@xPomaHx
1vs9
Самое простое при ресайзе окна сворачивать меню вашими средствами.
Ответ написан
Комментировать
webirus
@webirus
Тыжверстальщик! Наверстай мне упущенное...
$( window ).resize(function() {
  $( ".menu" ).hide();
});
Ответ написан
Комментировать
abyrkov
@abyrkov
JavaScripter
Нет возможности повесить обработчик на onresize, что ли?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы