js鼠标移入第i个li就显示第i个div,默认不显示,div在li的里面
时间: 2024-02-21 10:56:48 浏览: 80
鼠标放上去显示div
4星 · 用户满意度95%
好的,针对你的问题,可以使用如下的JavaScript代码实现:
```html
<!DOCTYPE html>
<html>
<head>
<title>鼠标移入li显示对应的div</title>
<style>
ul {
list-style: none;
margin: 0;
padding: 0;
}
li {
display: inline-block;
padding: 10px;
background-color: #ccc;
margin-right: 10px;
cursor: pointer;
}
li:hover {
background-color: #aaa;
}
li.active {
background-color: #f00;
}
.div-container {
display: none;
}
.div-container.active {
display: block;
}
</style>
</head>
<body>
<ul>
<li>菜单1
<div class="div-container">菜单1的内容</div>
</li>
<li>菜单2
<div class="div-container">菜单2的内容</div>
</li>
<li>菜单3
<div class="div-container">菜单3的内容</div>
</li>
</ul>
<script>
var lis = document.querySelectorAll('li');
var divs = document.querySelectorAll('.div-container');
for (var i = 0; i < lis.length; i++) {
lis[i].index = i; // 保存索引信息
lis[i].onmouseover = function() {
// 隐藏所有的div
for (var j = 0; j < divs.length; j++) {
divs[j].classList.remove('active');
}
// 显示对应的div
divs[this.index].classList.add('active');
// 添加选中状态
this.classList.add('active');
}
lis[i].onmouseout = function() {
// 隐藏所有的div
for (var j = 0; j < divs.length; j++) {
divs[j].classList.remove('active');
}
// 取消选中状态
this.classList.remove('active');
}
}
</script>
</body>
</html>
```
这段代码使用了JavaScript实现了鼠标移入li时显示对应的div的效果。具体实现方式是:给每个li元素绑定onmouseover和onmouseout事件,当鼠标移入li时,显示对应的div,同时给li添加选中状态;当鼠标移出li时,隐藏所有的div,取消li的选中状态。
阅读全文