滚动到顶部时 ScrollTop 不会返回

ScrollTop not reverting back when scroll to top

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");
        }
        }
    });
});

您在第一个 if 语句中存在逻辑错误。

您正在检查 $('.topblockfix') 的顶部偏移量。但是您删除了 class .topblockfix 并将其设置为 .topblockfix-alt.

因此您需要更新您的 if 语句:

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

或者你必须在某处缓存 $('.topblockfix').offset().top 的值