繁体   English   中英

获取一个下拉菜单,可在汉堡菜单内外工作

[英]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>

有一种更好的方法可以在没有JavaScript的情况下使用Bulma创建语言菜单。

语言菜单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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM