You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress滚动切换Logo异常求助:回滚无法恢复白色Logo

解决滚动切换Logo后回滚无法恢复的问题

看起来你的问题出在代码只处理了向下滚动的Logo切换逻辑,却没有针对回滚到顶部的情况做反向处理。我帮你调整了代码,既能实现滚动时切换黑色Logo,回滚时也能自动恢复白色Logo:

jQuery(function($) {
    // 替换成你实际的白色/黑色Logo路径
    const whiteLogoUrl = 'https://www.narwal.shop/wp-content/uploads/你的白色Logo文件名.png';
    const blackLogoUrl = 'https://www.narwal.shop/wp-content/uploads/你的黑色Logo文件名.png';
    
    // 页面加载时先检查一次位置,避免刷新后位置不对
    updateLogo();
    
    // 滚动时触发Logo更新
    $(window).on('scroll', updateLogo);
    
    // 核心判断函数
    function updateLogo() {
        // 这里的50px是滚动阈值,可根据你的粘性菜单触发距离调整
        const shouldSwitchToBlack = $(window).scrollTop() > 50;
        
        if (shouldSwitchToBlack) {
            $('.logo-container img').attr('src', blackLogoUrl);
            // 如果你的主题是通过类来控制样式(比如原代码的shrinked类),可以用下面这行替代上面的img src修改:
            // $('.logo-container').addClass('shrinked').removeClass('original');
        } else {
            $('.logo-container img').attr('src', whiteLogoUrl);
            // 对应类控制的恢复逻辑:
            // $('.logo-container').removeClass('shrinked').addClass('original');
        }
    }
});

关键说明:

  • 路径替换:一定要把代码里的whiteLogoUrl和blackLogoUrl换成你自己的Logo实际路径
  • 阈值调整:50px是触发切换的滚动距离,你可以根据粘性菜单开始出现的位置修改这个数值
  • 类控制替代:如果你的主题是通过添加CSS类(比如shrinked)来改变Logo样式,那就用注释里的类添加/移除逻辑,比直接修改img src更灵活。对应的CSS可以这么写:
/* 初始状态的白色Logo */
.logo-container.original img {
    /* 比如隐藏黑色Logo,显示白色 */
}

/* 滚动后的黑色Logo */
.logo-container.shrinked img {
    /* 比如隐藏白色Logo,显示黑色 */
}

额外注意:

确保你的WordPress站点已经加载了jQuery(默认是加载的,但如果主题禁用了,需要重新引入),否则代码会失效。

内容的提问来源于stack exchange,提问作者Rick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:27:39