左侧菜单,右侧内容,鼠标悬停左侧菜单,右侧显示对应内容
这是一个常见的网页布局设计,也被称为“侧边栏布局”,它的优点是可以提供更多的信息和功能,同时也使页面更加整洁和易于阅读。以下是实现此布局的基本步骤:
-
HTML结构:创建一个左侧菜单和一个右侧内容区域的容器,使用HTML列表元素(
- 和
- )来创建菜单项,并为菜单项添加类或ID以便于CSS样式设计和JavaScript交互。
-
CSS样式:使用CSS样式来设置容器的布局、颜色、字体等属性,以及菜单的样式(如背景、边框、文字效果等)。还可以使用伪元素(如:hover)来为菜单项添加鼠标悬停效果,以及为选中的菜单项添加当前状态样式(如.active)。
-
JavaScript交互:使用JavaScript编写交互代码,当鼠标悬停或点击菜单项时,显示对应的内容区域。可以使用DOM操作方法(如getElementById、querySelector等)来获取菜单项和内容区域的元素,以及事件监听方法(如addEventListener)来监听鼠标事件。
以下是一个简单的示例代码:
HTML结构:
<div class="container">
<ul class="menu">
<li id="item1">菜单项1</li>
<li id="item2">菜单项2</li>
<li id="item3">菜单项3</li>
</ul>
<div class="content">
<div id="content1">内容1</div>
<div id="content2">内容2</div>
<div id="content3">内容3</div>
</div>
</div>
CSS样式:
.container {
display: flex;
}
.menu {
width: 200px;
background-color: #f8f8f8;
border-right: 1px solid #ccc;
padding: 10px;
}
.menu li {
cursor: pointer;
padding: 5px;
border-radius: 3px;
}
.menu li:hover {
background-color: #e0e0e0;
}
.menu li.active {
background-color: #ddd;
}
.content {
flex: 1;
padding: 10px;
}
.content div {
display: none;
}
.content div.show {
display: block;
}
JavaScript交互:
var menuItems = document.querySelectorAll('.menu li');
var contentItems = document.querySelectorAll('.content div');
for (var i = 0; i < menuItems.length; i++) {
menuItems[i].addEventListener('click', function() {
var itemID = this.id.replace('item', 'content');
for (var j = 0; j < contentItems.length; j++) {
contentItems[j].classList.remove('show');
}
document.getElementById(itemID).classList.add('show');
for (var k = 0; k < menuItems.length; k++) {
menuItems[k].classList.remove('active');
}
this.classList.add('active');
});
}
这段代码使用了事件委托的方式,为菜单项添加了点击事件,当点击菜单项时,遍历所有内容区域并隐藏它们,然后显示与菜单项对应的内容区域,并将菜单项设为当前状态。
原文地址: https://www.cveoy.top/t/topic/twk 著作权归作者所有。请勿转载和采集!