javascript - 在移动设备上查看时如何将导航项目移出屏幕
问题描述
我正在学习如何为移动设备构建汉堡菜单。
我已经建立了一个有三个孩子的导航。标志、导航项目和汉堡菜单。我使用 flexbox 将它们并排放置并在桌面上的汉堡菜单上显示:none 以最初将其隐藏。
我尝试过使用相对/绝对位置,但效果不太好。此外,将 flex-direction: row 更改为 column 也无济于事。
这是导航栏的标记
<nav class="nav">
<div class="brand"><h4>The Brand</h4></div>
<div class="navigation">
<ul class="navigation__list">
<li class="navigation__item">
<a href="#">Home</a>
</li>
<li class="navigation__item">
<a href="#">About</a>
</li>
<li class="navigation__item">
<a href="#">Services</a>
</li>
<li class="navigation__item">
<a href="#">Gallery</a>
</li>
<li class="navigation__item">
<a href="#">Blog</a>
</li>
<li class="navigation__item">
<a href="#">Contact</a>
</li>
</ul>
</div>
<button class="hamburger">
<span class="hamburger__box">
<span class="hamburger__inner"></span>
</span>
</button>
</nav>
我想要实现的是:在移动设备上,应该出现汉堡菜单。导航项目应从屏幕上消失,并应垂直放置。我希望它们在单击汉堡包时从右侧滑入。
代码笔: https ://codepen.io/kowalik9412/pen/WNeMQrO
解决方案
只需使用引导程序。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js" integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o" crossorigin="anonymous"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<nav class="navbar navbar-expand-lg navbar-light bg-white">
<a class="navbar-brand" href="#"><h4>The Brand</h4></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></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="#">Gallery</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Blog</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Contact</a>
</li>
</div>
</li>
</ul>
</div>
</nav>
推荐阅读
- javascript - 查找多边形和多多边形的差异时出现 TopologyException 错误
- php - 使用 php preg_replace 在 html 标签中包含指定的单词
- c - 为什么这个 c 代码在我运行这个代码时不接受输入。该程序无需任何输入即可存在
- php - 如何在核心 php 中生成友好的 url?
- performance - Apache Solr 6.6.2 使用 edismax 解析器进行性能调优
- magento - Magento 1.9 Onepage Checkout - Ajax 刷新付款方式
- javascript - id 为“notes”的 div 不会在 javascript 代码中显示默认注释。如何默认显示?
- bash - 当“ssh”在循环体中时,Bash while 循环结束执行
- vertica - 按列的不存在/非典型值过滤会导致性能下降
- jquery - 在 jQuery 中实现 animate({height}) 效果的最佳方法是什么?