js实现左侧
实现左侧固定导航栏
使用HTML和CSS创建一个固定左侧导航栏,导航栏会随页面滚动保持固定位置。
<div class="sidebar">
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#services">Services</a>
<a href="#contact">Contact</a>
</div>
<div class="main-content">
<!-- 页面主要内容 -->
</div>
.sidebar {
height: 100%;
width: 200px;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: #111;
overflow-x: hidden;
padding-top: 20px;
}
.sidebar a {
padding: 6px 8px 6px 16px;
text-decoration: none;
font-size: 20px;
color: #818181;
display: block;
}
.sidebar a:hover {
color: #f1f1f1;
}
.main-content {
margin-left: 200px;
padding: 20px;
}
实现可折叠的左侧菜单
创建一个可以展开和折叠的左侧菜单,使用JavaScript添加交互功能。

<button class="toggle-btn" onclick="toggleMenu()">Toggle Menu</button>
<div class="sidebar" id="sidebar">
<a href="#">Menu Item 1</a>
<a href="#">Menu Item 2</a>
<a href="#">Menu Item 3</a>
</div>
.sidebar {
width: 250px;
height: 100vh;
background: #333;
position: fixed;
left: 0;
transition: transform 0.3s ease;
}
.sidebar.collapsed {
transform: translateX(-250px);
}
.toggle-btn {
position: fixed;
left: 260px;
top: 10px;
z-index: 100;
}
function toggleMenu() {
const sidebar = document.getElementById('sidebar');
sidebar.classList.toggle('collapsed');
}
响应式左侧导航栏
创建一个响应式左侧导航栏,在小屏幕上自动隐藏。

@media screen and (max-width: 768px) {
.sidebar {
transform: translateX(-250px);
}
.sidebar.active {
transform: translateX(0);
}
.main-content {
margin-left: 0;
}
}
带子菜单的左侧导航
实现一个带有可展开子菜单的左侧导航栏。
<div class="sidebar">
<div class="menu-item" onclick="toggleSubmenu(this)">
<span>Products</span>
<div class="submenu">
<a href="#">Product 1</a>
<a href="#">Product 2</a>
</div>
</div>
</div>
.submenu {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease;
}
.submenu.active {
max-height: 200px;
}
function toggleSubmenu(element) {
const submenu = element.querySelector('.submenu');
submenu.classList.toggle('active');
}
动态高亮当前菜单项
根据当前页面URL自动高亮对应的菜单项。
function highlightActiveMenu() {
const links = document.querySelectorAll('.sidebar a');
const currentUrl = window.location.href;
links.forEach(link => {
if (link.href === currentUrl) {
link.classList.add('active');
}
});
}
window.addEventListener('DOMContentLoaded', highlightActiveMenu);
.sidebar a.active {
background-color: #4CAF50;
color: white;
}






