@eugeneledenev

Как получить реальную ширину $(window).width()?

Если сайт загружен на планшете при ширине больше 769, то при его повороте (когда ширине менее 769) кнопка не работает. Если наоборот то все работает. $(window).width() - получается выдает данные на момент загрузки. А как получить текущие данные?
Ниже код:
if ($(window).width() < 769) {
        $(".burger-button").click(
            function () {
                menu.toggleClass("hide");
            });
    }
  • Вопрос задан
  • 297 просмотров
Решения вопроса 1
freislot
@freislot
Frontend-разработчик
Нужно обновлять полученную ширину например по resize() вот так

var mobile;
	mobileCheck();
	var windowWidth = $(window).width();
	$(window).resize(function() {
		if ($(window).width() != windowWidth) { 
			windowWidth = $(window).width();
			mobileCheck();
		}
	});

	function mobileCheck() {
		if (window.innerWidth < 768) {
			mobile = true;

		}else {
			mobile = false;
		}
	}


а дальше ваш код
if (mobile) {
        $(".burger-button").click(
            function () {
                menu.toggleClass("hide");
            });
    }

В этом примере мы создаем переменную mobile которая принимает либо true либо false а функция mobileCheck срабатывает по ресайзу окна и при первой загрузке

на красоту и качество реализации не претендую, кофе не попил ))) но думаю идея понятна и допилить уже сможете сами по необходимости
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
p00h
@p00h
Фехтовальщик-стропальщик
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы