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

如何使用JavaScript实现滚动时的Logo图片切换

实现滚动时Logo切换的两种实用方法

嘿,这个需求很好解决,咱们可以在你现有的滚动监听代码基础上,轻松加上Logo切换的逻辑。下面给你两种常用的实现方式,你可以根据自己的HTML结构选一个:

方法1:直接修改图片的src属性

假设你的Logo是一个<img>标签,结构类似这样:

<img id="site-logo" src="black-logo.png" alt="网站Logo">

那你可以在滚动监听的代码里,根据滚动状态切换它的src属性:

$(window).on('scroll', function() {
  const hasScrolled = $(window).scrollTop() > 0;
  // 切换导航栏的black类
  $('nav').toggleClass('black', hasScrolled);
  
  // 获取Logo元素并切换图片
  const logoElement = $('#site-logo');
  if (hasScrolled) {
    logoElement.attr('src', 'white-logo.png');
  } else {
    logoElement.attr('src', 'black-logo.png');
  }
});

这个方法直接明了,适合用<img>标签承载Logo的场景。

方法2:用CSS类控制(更推荐)

这种方法把样式和逻辑分离,后续维护起来更方便。比如你可以用一个<div>作为Logo容器,或者直接给<img>加类:

HTML结构

<div id="site-logo" class="logo"></div>

CSS样式

.logo {
  width: 100px; /* 替换成你的Logo实际宽度 */
  height: 40px; /* 替换成你的Logo实际高度 */
  background-image: url('black-logo.png');
  background-size: contain;
  background-repeat: no-repeat;
}

/* 当导航栏变为黑色时,自动切换Logo背景图 */
nav.black .logo {
  background-image: url('white-logo.png');
}

JavaScript代码

这时候你的JS代码甚至不用改太多,只需要保持原来切换black类的逻辑就行——CSS会自动处理Logo的切换:

$(window).on('scroll', function() {
  $('nav').toggleClass('black', $(window).scrollTop() > 0);
})

这种方法的好处是:不用在JS里硬编码图片路径,后续要换图片只需要修改CSS,而且性能更好,不需要频繁操作DOM属性。

小提醒:记得把代码里的图片路径换成你实际的文件路径哦,确保路径正确才能正常显示~

内容的提问来源于stack exchange,提问作者Máté Tóth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:58:37