简单自适应汉堡导航模板 (HTML + CSS + JS)免费下载使用

以下是一个完整的简单自适应汉堡导航菜单模板,包含所有HTML + CSS + JS代码片段。当屏幕尺寸小于特定宽度时,会显示汉堡菜单图标,点击后可展开/收起导航菜单,你可以免费下载使用,可以节省你在相关行业开发过程中的时间。简单自适应汉堡导航模板 (HTML + CSS + JS)免费下载使用

简单自适应汉堡导航模板 (HTML + CSS + JS)完整版免费下载,模板相关代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>自适应汉堡导航</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: 'Arial', sans-serif;
            line-height: 1.6;
        }
        
        header {
            background-color: #333;
            color: #fff;
            padding: 1rem;
            position: relative;
        }
        
        .container {
            max-width: 1200px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .logo {
            font-size: 1.5rem;
            font-weight: bold;
        }
        
        .nav-links {
            display: flex;
            list-style: none;
        }
        
        .nav-links li {
            margin-left: 2rem;
        }
        
        .nav-links a {
            color: #fff;
            text-decoration: none;
            transition: color 0.3s;
        }
        
        .nav-links a:hover {
            color: #f0f0f0;
        }
        
        .hamburger {
            display: none;
            cursor: pointer;
            width: 24px;
            height: 24px;
            position: relative;
            background: transparent;
            border: none;
            outline: none;
        }
        
        .hamburger span {
            display: block;
            width: 100%;
            height: 2px;
            background-color: #fff;
            position: absolute;
            left: 0;
            transition: transform 0.3s, opacity 0.3s;
        }
        
        .hamburger span:nth-child(1) {
            top: 6px;
        }
        
        .hamburger span:nth-child(2) {
            top: 12px;
        }
        
        .hamburger span:nth-child(3) {
            top: 18px;
        }
        
        .hamburger.active span:nth-child(1) {
            transform: translateY(6px) rotate(45deg);
        }
        
        .hamburger.active span:nth-child(2) {
            opacity: 0;
        }
        
        .hamburger.active span:nth-child(3) {
            transform: translateY(-6px) rotate(-45deg);
        }
        
        @media (max-width: 768px) {
            .hamburger {
                display: block;
            }
            
            .nav-links {
                position: absolute;
                top: 100%;
                left: 0;
                width: 100%;
                background-color: #333;
                flex-direction: column;
                align-items: center;
                padding: 1rem 0;
                clip-path: circle(0px at 90% -10%);
                transition: clip-path 0.5s ease-in-out;
                pointer-events: none;
            }
            
            .nav-links.active {
                clip-path: circle(1000px at 90% -10%);
                pointer-events: all;
            }
            
            .nav-links li {
                margin: 1rem 0;
            }
        }
    </style>
</head>
<body>
    <header>
        <div class="container">
            <div class="logo">网站LOGO</div>
            <nav>
                <button class="hamburger">
                    <span></span>
                    <span></span>
                    <span></span>
                </button>
                <ul class="nav-links">
                    <li><a href="#">首页</a></li>
                    <li><a href="#">关于我们</a></li>
                    <li><a href="#">服务</a></li>
                    <li><a href="#">产品</a></li>
                    <li><a href="#">联系我们</a></li>
                </ul>
            </nav>
        </div>
    </header>

    <script>
        document.addEventListener('DOMContentLoaded', function() {
            const hamburger = document.querySelector('.hamburger');
            const navLinks = document.querySelector('.nav-links');
            
            hamburger.addEventListener('click', function() {
                this.classList.toggle('active');
                navLinks.classList.toggle('active');
            });
            
            // 点击导航链接后关闭菜单(移动端)
            const navItems = document.querySelectorAll('.nav-links a');
            navItems.forEach(item => {
                item.addEventListener('click', function() {
                    if (window.innerWidth <= 768) {
                        hamburger.classList.remove('active');
                        navLinks.classList.remove('active');
                    }
                });
            });
            
            // 窗口大小改变时检查是否需要隐藏菜单
            window.addEventListener('resize', function() {
                if (window.innerWidth > 768) {
                    hamburger.classList.remove('active');
                    navLinks.classList.remove('active');
                }
            });
        });
    </script>
</body>
</html>

功能说明

  1. 响应式设计
    • 在宽度大于768px时显示常规导航菜单
    • 在宽度小于等于768px时显示汉堡菜单图标
  2. 动画效果
    • 汉堡图标点击时有动画效果(三条线变为X)
    • 导航菜单展开/收起时有平滑的动画效果
  3. 交互功能
    • 点击汉堡图标切换菜单显示状态
    • 点击菜单项后自动关闭菜单(移动端)
    • 窗口大小改变时自动调整菜单状态

自定义选项

  1. 修改断点:在CSS中修改@media (max-width: 768px)的值来调整切换汉堡菜单的屏幕宽度
  2. 修改颜色:修改background-colorcolor属性来改变导航栏和菜单的颜色
  3. 修改动画:调整transition属性值来改变动画速度和效果
  4. 添加更多菜单项:只需在<ul class="nav-links">中添加更多<li>元素

这个模板简洁、现代,适合大多数网站使用,可以根据需要进行进一步的自定义。

发表评论