javascript - 如何使用相同的按钮打开和关闭我的汉堡菜单?
问题描述
当谈到 javascript 时,我是一个完整的初学者,而且我已经碰壁了。
我在 W3 学校发现了一小段关于如何创建动画汉堡菜单的代码,看起来很酷,我已经成功地将它链接到我的侧边菜单,所以它成功地打开了它.. 但是同一个按钮不会关闭菜单。
我设法通过将 ;openSlideMenu() 添加到第一个 div 容器中的 onclick 函数来链接我的侧边菜单。
我尝试通过在同一个容器中使用 ;closeSlideMenu() 添加关闭功能,但没有任何运气,我认为为什么这不起作用是因为 div 容器的名称“burger-menu-btn”更改为“burger-menu- btn change" 当您单击它时,因为切换功能会告诉它这样做。
<!-- Burger menu icon and animation -->
<div class="burger-menu-btn" onclick="myFunction(this); openSlideMenu();">
<div class="burger-menu-bar-1"></div>
<div class="burger-menu-bar-2"></div>
<div class="burger-menu-bar-3"></div>
</div>
<script>
function myFunction(x) {
x.classList.toggle("change");
}
function openSlideMenu(){
document.getElementById('burger-menu').style.width = '100%';
}
function closeSlideMenu(){
document.getElementById('burger-menu').style.width = '0px';
}
</script>
<div id="burger-menu" class="side-nav">
<a href="index.html">Home</a>
<a href="cases.html">Basic // GF2 </a>
<a href="#">Null</a>
<a href="#" >Null</a>
<a href="#">Null</a>
<a href="#" class="btn-close" onclick="closeSlideMenu()">×</a>
</div>
我的最终目标是:
使红色的“burger-menu-btn”打开滑块“burger-menu”,它已经这样做了。
然后使红色转换后的 X 关闭相同的滑块菜单。
所以我最终会得到一个好看的汉堡菜单,那是动画,我终于可以删除导航栏底部的临时“btn-close”按钮。
这是小提琴 https://jsfiddle.net/02rqy16f/
提前谢谢,如果我错过了任何重要的事情,我很抱歉。
解决方案
单击汉堡图标时,无需更改“#burger-menu”元素的宽度,您可以切换类(例如打开类),然后在css中设置“#burger-menu”的宽度。
#burger-menu{
width: 0%;
}
#burger-menu.open{
width: 100%;
}
点击功能:
document.getElementById('burger-menu').classList.toggle("open");
推荐阅读
- javascript - 如何添加单击事件侦听器以从下拉列表中选择一个选项
- python - 如何使用python自动登录
- node.js - 如何使用 circleci 部署到专用服务器
- coldfusion - 将参数传递给cfprogressbar
- c# - 如何在 iframe 中调试 Blazor WASM?
- javascript - 使用 react-native-gesture-handler 时出错
- javascript - toLocaleString() 不将数字格式化为欧洲格式
- php - 在 composer.json 中需要 Gulp
- c# - RSA 签名验证适用于 .Net 核心,但不适用于 .Net 4.8
- c++ - 从网络摄像头使用 OpenCV 保存视频,而不在监视器上显示视频