获取汉堡菜单的下拉菜单 inside/outside
Get a drop-down menu to work inside/outside of a hamburger menu
我想让“语言”菜单在桌面上作为下拉菜单工作,而在移动设备上保持非活动下拉菜单。
在移动设备上点击后,它应该会在下拉菜单中显示选项,并保留在汉堡菜单中。
语言菜单:
https://i.imgur.com/1vCEc2C.png
&&
https://i.imgur.com/R4AKUDG.png
我希望它在桌面上执行的操作:
https://i.imgur.com/8jFIVi5.png
我已经使用 javascript 代码使桌面上的菜单可点击,但在移动设备上菜单的行为很奇怪。
我希望看到下拉菜单在桌面上单击时有效,当我单击桌面上的其他任何地方时它会关闭,而不仅仅是当我单击菜单本身时。
在移动设备上,菜单看起来很奇怪,而不是在单击之前停用。
JSFiddle -> <script async src="//jsfiddle.net/jkuwg3ac/embed/"></script>
有一种更好的方法可以使用 Bulma 而不使用 JavaScript 创建语言菜单。
语言菜单HTML:
<div class="select">
<select>
<option selected>English</option>
<option>Italian</option>
<option>Arabic</option>
</select>
</div>
这是您使用我的想法的项目:
document.addEventListener('DOMContentLoaded', () => {
// Get all "navbar-burger" elements
const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);
// Check if there are any navbar burgers
if ($navbarBurgers.length > 0) {
// Add a click event on each of them
$navbarBurgers.forEach(el => {
el.addEventListener('click', () => {
// Get the target from the "data-target" attribute
const target = el.dataset.target;
const $target = document.getElementById(target);
// Toggle the "is-active" class on both the "navbar-burger" and the "navbar-menu"
el.classList.toggle('is-active');
$target.classList.toggle('is-active');
});
});
}
});
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Test!</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.4/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
<nav class="navbar has-text-centered" role="navigation" aria-label="main navigation">
<div class="navbar-brand">
<a class="navbar-item" href="https://bulma.io">
<img src="https://bulma.io/images/bulma-logo.png" width="112" height="28">
</a>
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navMenu">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
</div>
<div id="navMenu" class="navbar-menu">
<div class="navbar-start">
<a class="navbar-item">
Home
</a>
<a class="navbar-item">
Documentation
</a>
</div>
<div class="navbar-end">
<div class="select">
<select>
<option selected>English</option>
<option>Italian</option>
<option>Arabic</option>
</select>
</div>
</div>
</div>
</nav>
</body>
</html>
我想让“语言”菜单在桌面上作为下拉菜单工作,而在移动设备上保持非活动下拉菜单。
在移动设备上点击后,它应该会在下拉菜单中显示选项,并保留在汉堡菜单中。
语言菜单:
https://i.imgur.com/1vCEc2C.png
&&
https://i.imgur.com/R4AKUDG.png
我希望它在桌面上执行的操作:
https://i.imgur.com/8jFIVi5.png
我已经使用 javascript 代码使桌面上的菜单可点击,但在移动设备上菜单的行为很奇怪。
我希望看到下拉菜单在桌面上单击时有效,当我单击桌面上的其他任何地方时它会关闭,而不仅仅是当我单击菜单本身时。
在移动设备上,菜单看起来很奇怪,而不是在单击之前停用。
JSFiddle -> <script async src="//jsfiddle.net/jkuwg3ac/embed/"></script>
有一种更好的方法可以使用 Bulma 而不使用 JavaScript 创建语言菜单。
语言菜单HTML:
<div class="select">
<select>
<option selected>English</option>
<option>Italian</option>
<option>Arabic</option>
</select>
</div>
这是您使用我的想法的项目:
document.addEventListener('DOMContentLoaded', () => {
// Get all "navbar-burger" elements
const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);
// Check if there are any navbar burgers
if ($navbarBurgers.length > 0) {
// Add a click event on each of them
$navbarBurgers.forEach(el => {
el.addEventListener('click', () => {
// Get the target from the "data-target" attribute
const target = el.dataset.target;
const $target = document.getElementById(target);
// Toggle the "is-active" class on both the "navbar-burger" and the "navbar-menu"
el.classList.toggle('is-active');
$target.classList.toggle('is-active');
});
});
}
});
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Test!</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.4/css/bulma.min.css">
<script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
</head>
<body>
<nav class="navbar has-text-centered" role="navigation" aria-label="main navigation">
<div class="navbar-brand">
<a class="navbar-item" href="https://bulma.io">
<img src="https://bulma.io/images/bulma-logo.png" width="112" height="28">
</a>
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navMenu">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
</div>
<div id="navMenu" class="navbar-menu">
<div class="navbar-start">
<a class="navbar-item">
Home
</a>
<a class="navbar-item">
Documentation
</a>
</div>
<div class="navbar-end">
<div class="select">
<select>
<option selected>English</option>
<option>Italian</option>
<option>Arabic</option>
</select>
</div>
</div>
</div>
</nav>
</body>
</html>