weranda
@weranda

Как в JS или в jQuery отследить точку перехода от одной ширине окна к другой?

Сейчас для изменения того или иного свойства, к примеру, простого добавления или удаления класса HTML тега при той или иной ширине окна браузера использую такую конструкцию:

$( window ).resize(function () {
    var bodyWidth = $('body').width();
    if (bodyWidth < 500) {
        $('h1').removeClass('big');
        $('h1').addClass('min');
    } else {
        $('h1').removeClass('min');
        $('h1').addClass('big');
    }
});


Мне кажется, что это неправильный подход, но пока приходится выкручиваться именно таким образом. При каждом изменении ширины окна браузера рассчитывается ширина body и применяются методы/свойства в логических условиях. Следуя этому примеру, при многократном изменении ширины браузера в пределах от 0 до 500px, первое условие все равно так или иначе будет каждый раз срабатывать.

Я даже не знаю как сформулировать запрос к ПС правильно по этой теме, чтобы не тревожить вас. Суть вопроса/проблемы заключается в том, чтобы "уловить" конкретный момент перехода от одной ширины к другой и применить условие только единожды при данной ширине окна браузера, т.е. чтобы в пределах заданного диапазона (к примеру, до 500px) правило не срабатывало при каждом изменении ширины, даже на 1px. Я понимаю, что можно задать вложенное условие с проверкой наличия того или инога класса и получить еще большую кашу в коде и голове, но чувствую, что что-то тут не так.

P.S.
Не пишите пожалуйста о том, что в этом случае надо использовать CSS. Привел пример только лишь для наглядности и понимания сути проблемы.
  • Вопрос задан
  • 1228 просмотров
Пригласить эксперта
Ответы на вопрос 1
Negwereth
@Negwereth
lvivcss.com.ua
Ставь флаг, когда первый раз ширина уходит за 500px. Когда становится больше - чисть флаг для меньшей ширины и выставляй для большей.
Ответ написан
Ваш ответ на вопрос

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

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