下面是一个示例的HTML、CSS和JavaScript代码,用于创建一个简单的响应式标题栏。
HTML代码:
Responsive Navbar
CSS代码(styles.css):
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.navbar {
display: flex;
align-items: center;
justify-content: space-between;
background-color: #333;
padding: 10px;
}
.logo a {
color: white;
text-decoration: none;
font-size: 20px;
}
.nav-links {
display: flex;
justify-content: space-between;
list-style: none;
}
.nav-links li a {
color: white;
text-decoration: none;
margin: 0 10px;
}
.hamburger {
display: none;
flex-direction: column;
cursor: pointer;
}
.line {
width: 25px;
height: 3px;
background-color: white;
margin: 2px;
}
@media(max-width: 768px) {
.nav-links {
position: absolute;
right: 0px;
height: 92vh;
top: 8vh;
background-color: #333;
display: flex;
flex-direction: column;
align-items: center;
width: 50%;
transform: translateX(100%);
transition: transform 0.5s ease-in;
}
.nav-links li {
opacity: 0;
}
.hamburger {
display: flex;
}
}
.nav-active {
transform: translateX(0%);
}
@keyframes navLinkFade {
from {
opacity: 0;
transform: translateX(50px);
}
to {
opacity: 1;
transform: translateX(0px);
}
}
JavaScript代码(script.js):
const navSlide = () => {
const hamburger = document.querySelector('.hamburger');
const navLinks = document.querySelector('.nav-links');
const links = document.querySelectorAll('.nav-links li');
hamburger.addEventListener('click', () => {
navLinks.classList.toggle('nav-active');
links.forEach((link, index) => {
if (link.style.animation) {
link.style.animation = '';
} else {
link.style.animation = `navLinkFade 0.5s ease forwards ${index / 7 + 0.3}s`;
}
});
hamburger.classList.toggle('toggle');
});
}
navSlide();
这段代码实现了一个简单的响应式标题栏。当屏幕宽度小于768px时,标题栏会隐藏菜单项,并显示一个汉堡菜单图标。单击汉堡菜单图标时,菜单项将会展开或折叠。