解锁交互性:使用 HTML、CSS 和 JavaScript 制作汉堡菜单

简介

在 Web 开发领域,交互性是吸引用户和增强导航体验的关键。汉堡菜单是一种为网站增加功能和视觉吸引力的流行元素。在本文中,我们将深入研究使用 HTML、CSS 和 JavaScript 从头开始​​创建动态汉堡菜单的过程。

组成部分:HTML 结构

我们的旅程从汉堡菜单的基本结构开始。我们首先设置一个基本的 HTML 文档并定义基本组件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="styles.css">
    <title>Hamburger Menu</title>
</head>
<body>
    <div class="hamburger_menu">
        <div class="hamburger_bar"></div>
    </div>
    <script src="./script.js"></script>
</body>
</html>

风格:使用 CSS 添加样式

接下来,我们使用 CSS 为汉堡菜单注入风格和个性。以下是我们如何在视觉上增添趣味:

*,
::before,
::after{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body{
    width:100%;
    height:100vh;
    background:#475472 ;
    position: relative;
}

.hamburger_menu{
    width:40px;
    height:30px;
    position: absolute;
    top:50%;
    left: 50%;
    transform: translate(-50%, -50%);
    cursor: pointer;
}

.hamburger_bar{
    height:5px;
    width:100%;
    background: #fff;
    border-radius: 100vh;
    position: absolute;
    transition: all .3s ease-in-out;
}

.hamburger_bar::before{
    content: "";
    width:100%;
    height:5px;
    background: #fff;
    border-radius: 100vh;
    position: absolute;
    top:-8px;
    transition: all .3s ease-in-out;
}

.hamburger_bar::after{
    content: "";
    width:100%;
    height:5px;
    background: #fff;
    border-radius: 100vh;
    position: absolute;
    bottom: -8px;
    transition: all .3s ease-in-out;
}

/* Animation for the hamburger menu */
.open .hamburger_bar {
    background: transparent;
}

.open .hamburger_bar::before {
    transform: rotate(-45deg);
    top: 0;
}

.open .hamburger_bar::after {
    transform: rotate(45deg);
    bottom: 0;
}

神奇之触:使用 JavaScript 添加行为

最后,我们通过使用 JavaScript 添加交互性,使汉堡菜单变得栩栩如生。借助 JavaScript 的魔力,我们的菜单可以响应用户的点击:

const hamburgerMenu = document.querySelector('.hamburger_menu')

hamburgerMenu.addEventListener('click', (e) => {
    e.currentTarget.classList.toggle('open')
    console.log(e.target.classList)
})

结论

瞧!通过结合 HTML、CSS 和 JavaScript,我们制作了一个令人愉悦的汉堡菜单,既时尚又实用。尝试不同的口味、动画和交互,以创建适合您网站口味的菜单。快乐编码!

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=5vbhp91f157x
THE END
喜欢就支持一下吧
点赞2 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容