@eugeneledenev

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

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

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

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

Войти через TM ID
Похожие вопросы