javascript - 单击 div 时更改背景
问题描述
我正在制作侧边栏,我需要更改 div 的背景。现在,当我将其悬停时,它会向我显示:
所以我需要这样做,当它被点击时,当然,当我点击另一个 div(例如“搜索”)时,这个背景会在“主页”处消失,并在“搜索”处显示。
我的代码:
<div className="navbar" id ="home">
<HomeIcon/><span>Home</span>
</div>
<div className="navbar" id="search">
<img src="img/search-navbar.svg" /><span>Search</span>
</div>
<div className="navbar" id="library">
<ListIcon/><span>Your Library</span>
</div>
.navbar{
display:flex;
align-items: center;
vertical-align: middle;
padding-left:10px;
color:white;
opacity:1;
cursor: pointer;
border-radius:5px;
opacity:0.7;
height:39px;
width:91%;
margin-left:auto;
margin-right:auto;
transition: 0.5s;
}
.navbar:hover{
background: rgba(225, 225, 225, .2);
opacity:1;
transform: translateY(-2px);
}
如果所有代码都写在css上会更好,但JS也可以使用。
解决方案
您可以使用 javascript 切换活动类,尽管您的所有侧边栏选项都像这个小提琴一样。. 我也包括代码
.box{
height:60px;
width:200px;
font-size:15px;
background:#ebebeb;
display:flex;
align-items:center;
justify-content:center;
}
.active{
background:#f00;
}
var prev=document.querySelector(".box");
function active(e){
prev.classList.remove("active");
e.classList.add("active");
prev=e;
}
<div onclick="active(this)" class="box active">This is Div 1</div><br>
<div onclick="active(this)" class="box">This is Div 2</div><br>
<div onclick="active(this)" class="box">This is Div 3</div><br>
<div onclick="active(this)" class="box">This is Div 4</div><br>
<div onclick="active(this)" class="box">This is Div 5</div>
推荐阅读
- python - 提高 excel 文件操作的速度(使用 openpyxl):检查值和删除行操作 if 条件
- python - Python ssl.get_server_certificate 下载错误的证书?
- java - 如何配置 Spring 会话以在 xml 中使用 Redis?
- asp.net-core - CaslteWindsor LifestyleScoped 在请求之间使用 SAME 实例
- python - 如何使用 DataFrame 计算列的平均值?
- node.js - 如何在 KeystoneJS 的前端下载文件
- python - 如何在 Python + Selenium 中单击 HTML 按钮
- android - 在 gradle 中使用 2 个不同版本的 JNA
- c# - 实体框架在向子表插入新记录后不返回参考表数据
- c# - C# 获取 Azure AD 身份的访问令牌