JavaScript伸缩导航是一种常见的网页交互效果,它允许用户通过点击或其他交互方式展开或收缩导航菜单。这种效果可以提升用户体验,使界面更加简洁和易于导航。
伸缩导航通常涉及以下几个基础概念:
display
属性或使用max-height
来实现动画效果。以下是一个简单的JavaScript伸缩导航的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>伸缩导航示例</title>
<style>
.nav {
list-style: none;
padding: 0;
}
.nav-item {
cursor: pointer;
}
.sub-menu {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease-out;
}
</style>
</head>
<body>
<ul class="nav">
<li class="nav-item">菜单1
<ul class="sub-menu">
<li>子菜单1.1</li>
<li>子菜单1.2</li>
</ul>
</li>
<li class="nav-item">菜单2
<ul class="sub-menu">
<li>子菜单2.1</li>
<li>子菜单2.2</li>
</ul>
</li>
</ul>
<script>
document.querySelectorAll('.nav-item').forEach(item => {
item.addEventListener('click', function(event) {
event.stopPropagation();
const subMenu = this.querySelector('.sub-menu');
if (subMenu.style.maxHeight) {
subMenu.style.maxHeight = null;
} else {
subMenu.style.maxHeight = subMenu.scrollHeight + 'px';
}
});
});
</script>
</body>
</html>
transform: translateZ(0)
),并减少不必要的DOM操作。event.stopPropagation()
阻止事件冒泡。通过以上方法,可以有效实现和优化JavaScript伸缩导航功能。
领取专属 10元无门槛券
手把手带您无忧上云