ScrollTop не возвращается назад при прокрутке вверх - PullRequest
0 голосов
/ 17 марта 2020

Возникли проблемы со Scrolltop - он может плавно меняться при прокрутке вниз, но не возвращается к исходному css при прокрутке вверх.

Я пытался изменить порядок, но ничего работает. Может кто-нибудь сказать мне, где мой код не так?

Спасибо

$(function() {
    var topblock = $(".topblockfix");
    var header = $(".header");
    $(window).scroll(function() {   
        var scroll = $(window).scrollTop();
        if ($(window).scrollTop() > $('.topblockfix').offset().top) {
        if (scroll >= 250) {
            topblock.removeClass("topblockfix").addClass("topblockfix-alt");
            header.removeClass("header").addClass("header-alt");
        } else {
            topblock.removeClass("topblockfix-alt").addClass("topblockfix");
            header.removeClass("header-alt").addClass("header");
        }
        }
    });
});

1 Ответ

0 голосов
/ 17 марта 2020

У вас есть логическая ошибка в первом операторе if.

Вы проверяете вершину смещения $ ('. Topblockfix'). Но вы удаляете класс .topblockfix и устанавливаете его в .topblockfix-alt.

Так что вам нужно обновить оператор if:

if ($(window).scrollTop() > $('.topblockfix').offset().top || $(window).scrollTop() > $('.topblockfix-alt').offset().top) {

, или вам нужно кэшировать значение $ ( '.topblockfix'). offset (). top где-то

...