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

如何实现激活时修改标签颜色、失活后自动恢复原有颜色的功能

实现标签激活变色的操作方法

要实现激活状态改色、失活自动恢复的效果,核心逻辑是通过专属CSS类控制激活态样式,切换标签时统一清空所有标签的激活类,仅给当前选中标签添加即可,具体修改步骤如下:


1. 新增CSS激活态样式

在原有CSS代码末尾添加激活类的样式,颜色可根据需求自定义:

/* 标签激活状态样式 */
.city.active {
  background-color: #bbb; /* 激活状态背景色,可替换为你想要的颜色 */
}

2. 修正HTML代码

原有London按钮重复定义了id属性,先删除多余id,同时添加默认激活类(因为默认显示London对应的内容):

<!-- 修改后的London按钮 -->
<button id="london" class="city active">London</button>

Paris和Tokyo按钮的代码无需修改。


3. 修改JS代码

有两种修改方式可选:

方案一:优化原有代码(减少重复逻辑,推荐)

替换原有全部JS代码即可:

// 统一获取所有标签和对应内容
const cityBtns = document.querySelectorAll('.city')
const cityTexts = document.querySelectorAll('.text')

// 初始化默认隐藏巴黎、东京的内容
cityTexts[1].style.display = 'none'
cityTexts[2].style.display = 'none'

// 给所有标签绑定点击事件
cityBtns.forEach((btn, index) => {
  btn.addEventListener('click', () => {
    // 重置所有标签的状态:移除激活类、隐藏对应内容
    cityBtns.forEach(item => item.classList.remove('active'))
    cityTexts.forEach(text => text.style.display = 'none')
    // 激活当前选中的标签、显示对应内容
    btn.classList.add('active')
    cityTexts[index].style.display = 'block'
  })
})

方案二:在原有代码基础上修改

如果不想改动原有代码结构,只需要在每个点击事件里增加激活类的切换逻辑即可,以London的点击事件为例:

london.addEventListener('click', function() {
  // 先清空所有标签的激活类
  london.classList.remove('active')
  paris.classList.remove('active')
  tokyo.classList.remove('active')
  // 给当前点击的标签加激活类
  london.classList.add('active')
  // 原有内容切换逻辑保持不变
  paris_text.style.display = "none";
  tokyo_text.style.display = "none";
  london_text.style.display = "block";
});

Paris和Tokyo的点击事件参照上面的逻辑修改即可。


补充内容
  • 香蕉、苹果、橙子、番石榴、柠檬都是非常不错的水果
  • 我有一盆粉色的仙人掌,喜爱玫瑰、紫罗兰,也很喜欢冰淇淋

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 17:45:02