小樱知识 > 生活常识html5导航栏代码(网页设计菜单栏导航实例)

html5导航栏代码(网页设计菜单栏导航实例)

提问时间:2022-03-16 12:40:13来源:小樱知识网


H5自适应是现在主流的技术,导航栏菜单是最常见的一种,今天我们一起来学习一下它是如何使用HTML,CSS和JavaScript来构建响应式导航栏和汉堡菜单的。

这就是它的样子,是不是很熟悉呢?

但是它不是响应式的,所以我们还需要添加媒体查询css代码。

@media only screen and (max-width: 768px) {.nav-menu {position: fixed;left: -100%;top: 5rem;flex-direction: column;background-color: #fff;width: 100%;border-radius: 10px;text-align: center;transition: 0.3s;box-shadow:0 10px 27px rgba(0, 0, 0, 0.05);}.nav-menu.active {left: 0;}.nav-item {margin: 2.5rem 0;}.hamburger {display: block;cursor: pointer;}}

这里媒体查询就是通过设置position: fixed; left: -100%;来隐藏nav-menu。

此外,我们将hamburger设置为display: block;,所以现在可见。

我们还添加了一个额外的类.nav-menu.active,它在nav-menu上设置left: 0;。现在,到了添加javascript的时候了,以便在我们单击汉堡菜单时,会在nav-menu上添加此active类。

添加JavaScript

const hamburger = document.querySelector(“.hamburger”);const navMenu = document.querySelector(“.nav-menu”);hamburger.addEventListener(“click”, mobileMenu);function mobileMenu() {hamburger.classList.toggle(“active”);navMenu.classList.toggle(“active”);}

此处的函数mobileMenu()在hamburger和nav-menu上也添加了一个active类,从而打开mobile menu。单击hamburger时,我们可以使用hamburger上的active类来创建X动画。现在就开始做吧。

// Inside the Media Query..hamburger.active .bar:nth-child(2) {opacity: 0;}.hamburger.active .bar:nth-child(1) {transform: translateY(8px) rotate(45deg);}.hamburger.active .bar:nth-child(3) {transform: translateY(-8px) rotate(-45deg);}

现在看起来应该是这样的:

但是有一个问题,当我们单击链接时,汉堡菜单不会关闭。现在让我们解决一下这个问题。

const navLink = document.querySelectorAll(“.nav-link”);navLink.forEach(n => n.addEventListener(“click”, closeMenu));function closeMenu() {hamburger.classList.remove(“active”);navMenu.classList.remove(“active”);}

closeMenu()函数从nav-menu和hamburger中删除active类,从而关闭mobile menu。

H5导航菜单就是这样,实现了用HTML,CSS和javascript构建一个响应式的导航栏菜单。希望你喜欢并分享这篇文章。感谢大家的阅读。

以上内容就是为大家推荐的html5导航栏代码(网页设计菜单栏导航实例)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题

内容来源于网络仅供参考
二维码

扫一扫关注我们

版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。

本文标题:html5导航栏代码(网页设计菜单栏导航实例)

本文地址:https://www.xiaoyin02.com/shcs/117472.html

相关文章