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
相关产品推荐
相关产品推荐

