JavaScript直接实现响应式可折叠导航栏

这篇博客是一位前端新手尝试仅使用JavaScript实现响应式可折叠导航栏的实践记录。作者详细介绍了实现思路,包括创建导航栏图标,针对不同屏幕尺寸设置显示状态,并分享了在代码实现过程中遇到的问题及解决方案,如媒体查询、窗口大小变化时的处理等。
摘要由CSDN通过智能技术生成

这是一只前端小白,只会一点点Html、CSS和JavaScript,而且暂时不会Bootstrap框架和jQuery库,甚至也不会Canvas……而且如果改用Bootstrap框架需要对已有的网站大改,所以不得不尝试只用JavaScript实现。

一、实现思路

用Ps画一个背景透明的32px×32px导航栏图标nav.png。
nav.png

@media screen and (min-width: 768px)大屏幕:
<style>导航栏图标{display:none}

@media screen and (min-width: 768px)小屏幕:
<style>初始:导航栏图标{display:inline}、导航栏项目{display:none}

<script>点击图标(单次):导航栏项目{display:inline}
<script>点击图标(双次):导航栏项目{display:none}
<script>窗口变化:如果是大屏幕,设置导航栏项目{display:inline}

二、代码全文

Html文件<head>部分

<link rel="stylesheet" type="text/css" href="style.css">
<style type="text/css">
	@media screen and (min-width: 768px) {
    
		ul.navigation li img {
    
			display: none;
		}
	}

	@media screen and (max-width: 768px) {
    
		ul.navigation li {
    
			float: none;
		}

		ul.navigation li img {
    
			position: absolute;
			left: 1em;
			top: 1em;
			display: inline;
		}

		ul.navigation li:not(:first-child) {
    
			display: none;
		}
	}

	#content {
    
		text-align: center;
		clear: right;
		
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在小屏幕中,导航菜单收起,可以通过以下步骤来实现: 首先,在HTML文件中引入Bootstrap的相关CSSJavaScript文件,确保能够使用Bootstrap的组件和样式。 然后,在导航菜单的HTML结构中,使用Bootstrap提供的组件来构建响应式导航菜单。例如,可以使用`<nav>`标签作为导航菜单的容器,内部使用`<ul>`和`<li>`标签来创建菜单项,同时用`<a>`标签来添加链接,形成导航菜单的结构。 接着,为导航菜单添加CSS类,以便使用Bootstrap的样式。常用的类有`navbar`、`navbar-default`、`navbar-toggle`等,用于设置导航菜单的样式和交互效果。 在大型屏幕中浏览页面时,导航菜单会展开。这个可以通过为`<nav>`标签添加`class="navbar-expand-lg"`来实现,其中`lg`表示大型屏幕。 在小屏幕中,导航菜单会收起。为了实现这个效果,我们可以使用Bootstrap提供的响应式导航菜单组件。在`<nav>`标签内添加一个`<button>`标签,并为其添加`class="navbar-toggler"`,同时设置`data-toggle`和`data-target`属性,将按钮与导航菜单关联起来。当页面宽度较小时,导航菜单会被收起,点击按钮时,菜单项会显示出来。 最后,可以根据具体需求,自定义导航菜单的样式,并可以在导航菜单中添加其他Bootstrap的组件,如下拉菜单等,使导航菜单更加丰富和实用。 综上所述,通过使用Bootstrap,我们可以轻松地制作一个响应式导航菜单,实现在大型屏幕中导航菜单展开,在小屏幕中导航菜单收起的效果。 ### 回答2: 在小屏幕中则折叠隐藏。首先,在HTML文件中引入Bootstrap的CSSJavaScript文件。然后,在导航栏的外部包裹一个`nav`元素,并添加`navbar-expand-lg`类,这将使得导航栏只在大型屏幕中展开。在`nav`元素内部,创建一个`button`元素,并添加`navbar-toggler`类,这将是折叠按钮。接下来,为`button`元素添加`data-toggle="collapse"`和`data-target="#navbarCollapse"`属性,以便指示那个要折叠导航栏。然后,创建一个`div`元素,并添加`collapse navbar-collapse`类,这将创建一个可折叠导航栏。再在`div`元素内部创建一个`ul`元素,并添加`navbar-nav`类,这将创建导航菜单。然后,在`ul`元素内部创建`li`元素,并添加相应的导航菜单项。最后,在每个`li`元素内部创建一个`a`元素,并添加`nav-link`类和相应的链接。完成以上步骤后,导航菜单的基本结构就创建好了。 为了使导航栏在小屏幕中折叠隐藏,还需要添加一些自定义的CSS样式。可以创建一个新的CSS文件,并在HTML文件中引入它。然后在该文件中,为导航栏折叠按钮和导航菜单创建一些自定义样式。例如,可以使用媒体查询来设置在小屏幕下导航栏隐藏,大屏幕下导航栏展开。通过设置不同的`display`属性和`visibility`属性,可以实现导航栏的显示和隐藏。 通过以上步骤,就可以使用Bootstrap制作一个响应式导航菜单了。记得在浏览器中预览页面,确保导航菜单在大型屏幕中展开,并在小屏幕中折叠隐藏。 ### 回答3: 在小屏幕设备上浏览页面时,导航菜单折叠起来,可以通过Bootstrap来快速实现响应式导航菜单。 首先,在HTML中引入Bootstrap的CSSJS文件: ```html <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script> ``` 接下来,在HTML中添加导航菜单的结构: ```html <nav class="navbar navbar-expand-lg navbar-light bg-light"> <div class="container-fluid"> <a class="navbar-brand" href="#">Logo</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">About</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Services</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Contact</a> </li> </ul> </div> </div> </nav> ``` 通过以上代码,我们创建了一个带有Logo和四个导航链接的导航菜单。在大屏幕设备上,导航菜单会水平展开显示;在小屏幕设备上,导航菜单会折叠起来,点击导航按钮才会展开。 最后,可以根据需要对导航菜单进行样式的自定义,比如修改背景色、字体颜色等。 以上就是用Bootstrap制作响应式导航菜单的简单过程,通过简洁的HTML结构和Bootstrap提供的样式和脚本,可以轻松实现在不同屏幕设备上的导航菜单展示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值