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

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

Похожие вопросы
22 нояб. 2024, в 19:51
15000 руб./за проект
22 нояб. 2024, в 19:15
200000 руб./за проект
22 нояб. 2024, в 18:50
30000 руб./за проект