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

HTML网站暗模式切换按钮如何实现月亮与太阳图标动态切换

解决方案

你可以通过同步切换按钮图标的src属性实现需求,具体修改如下:

1. 调整HTML代码

给按钮内的图标元素添加唯一ID方便选中,同时修正img标签的错误写法,且不要给这个图标加inverted类,避免它参与全局反色逻辑:

<button class="btn">
  <img id="modeIcon" src="moon.png" alt="明暗模式切换">
</button>

2. 修改JS代码

在明暗模式切换逻辑后,判断当前模式状态,同步修改图标路径:

function myfunction(e) {
  console.log("you clicked");
  // toggle方法返回切换后是否存在该类,直接用来判断当前模式
  const isDarkMode = document.documentElement.classList.toggle("dark-mode");
  document.querySelectorAll(".inverted").forEach((result) => {
    result.classList.toggle("invert");
  });
  // 切换对应图标
  const modeIcon = document.getElementById('modeIcon');
  modeIcon.src = isDarkMode ? 'sun.png' : 'moon.png';
}
const btn = document.querySelector('.btn')
btn.addEventListener('click', myfunction);

请将代码中的sun.png替换为你实际的太阳图标文件路径

可选优化:初始状态适配

如果你的网站支持记忆用户历史选择的明暗模式、或者默认开启暗模式,可以补充页面初始化逻辑,保证图标和初始模式匹配:

// 页面加载完成后初始化图标状态
window.addEventListener('load', () => {
  const isDarkMode = document.documentElement.classList.contains('dark-mode');
  const modeIcon = document.getElementById('modeIcon');
  modeIcon.src = isDarkMode ? 'sun.png' : 'moon.png';
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:27:03