@aftar

Как правильно написать условие для scroll function?

Добрый вечер!

Подскажите как правильно написать условие. Чтобы при размере окна менее 900px scroll function не работала, а при ширине более 900px работала. Также при изменении окна заново проверять условие
$(window).resize(function() {
        scrollHeader();
    });

    function scrollHeader() {
        if ($(window).width() >= 900) {
  
            var topBar = $(".top-bar-bottom");
            var height_topBar = topBaroffset().top;

            $(".top-bar").css({
                "height": topBarBottom.outerHeight()
            });

            $(window).scroll(function() {
                var scrollTop = $(this).scrollTop();
                var logoTopVal = Number(-90 + scrollTop);

                if($(window).scrollTop() > height_topBar) {
                    topBarBottom.addClass("fixed");
                    $("header").css('margin-top', height_topBar);
                } else {
                    topBarBottom.removeClass("fixed");
                    $("header").css('margin-top', '0');
                }
            });
        }

        else {
            return false;
        }
    }

    scrollHeader();
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
like-a-boss
@like-a-boss
Признайся,тебяТянетНаКодМужика,ты—программный гей
Передавать актуальное значение ширины в функцию-обработчик скролла и там уже делать работу или покидать её по условию ширины. Таким образом, как у вас сейчас, если ширина >= 900px, устанавливается обработчик на скролл и ему по боку то, что ширина потом может стать меньше, он от этого работать не перестанет.
ИЛИ вариант два: можно и так оставить, но тогда при уходе в else, нужно снимать обработчик со скролла, но для этого нужно научиться навешивать обработчики, с которыми такое можно провернуть.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект