js实现导航栏
实现导航栏的基本结构
使用HTML和CSS创建导航栏的基础结构,通常包含一个<nav>元素和多个<a>标签。
<nav class="navbar">
<a href="#home">Home</a>
<a href="#about">About</a>
<a href="#services">Services</a>
<a href="#contact">Contact</a>
</nav>
.navbar {
background-color: #333;
overflow: hidden;
}
.navbar a {
float: left;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.navbar a:hover {
background-color: #ddd;
color: black;
}
添加响应式设计
通过JavaScript实现导航栏在移动设备上的折叠效果。
function toggleNavbar() {
const navbar = document.querySelector('.navbar');
navbar.classList.toggle('responsive');
}
@media screen and (max-width: 600px) {
.navbar a:not(:first-child) {display: none;}
.navbar a.icon {
float: right;
display: block;
}
}
@media screen and (max-width: 600px) {
.navbar.responsive a {
display: block;
float: none;
text-align: left;
}
}
动态高亮当前页面
使用JavaScript为当前页面的导航链接添加高亮效果。
const navLinks = document.querySelectorAll('.navbar a');
navLinks.forEach(link => {
if (link.href === window.location.href) {
link.classList.add('active');
}
});
.navbar a.active {
background-color: #4CAF50;
color: white;
}
实现下拉菜单
为导航栏添加下拉菜单功能。
<div class="dropdown">
<button class="dropbtn">Dropdown</button>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</div>
document.querySelector('.dropbtn').addEventListener('click', function() {
document.querySelector('.dropdown-content').classList.toggle('show');
});
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dropdown-content a:hover {
background-color: #f1f1f1;
}
.show {
display: block;
}
平滑滚动效果
为导航链接添加平滑滚动效果。
document.querySelectorAll('.navbar a').forEach(anchor => {
anchor.addEventListener('click', function(e) {
e.preventDefault();
document.querySelector(this.getAttribute('href')).scrollIntoView({
behavior: 'smooth'
});
});
});
固定导航栏
使导航栏在页面滚动时固定在顶部。
.navbar {
position: fixed;
top: 0;
width: 100%;
}
添加动画效果
为导航栏添加简单的动画效果。
.navbar a {
transition: background-color 0.3s, color 0.3s;
}






