javascript - 用 Js 实现响应式可折叠导航栏

标签 javascript html css

嘿,我正在使用 Rails 5、Ruby 2.4.0 和 TailwindCss 构建应用

我正在尝试构建响应式可折叠导航栏,但是我的 JS 不足...

现在我在大屏幕上的导航栏工作正常,在小屏幕和超小屏幕上的导航栏也存在,但是当我单击按钮时不会折叠以显示菜单,我真的不太确定我哪里出了问题。

代码笔:

我的代码:

<nav class="flex items-center justify-between flex-wrap bg-black p-6 nav-fixed">
  <div class="flex items-center flex-no-shrink text-white mr-6"> <!-- Navbar Title Block -->
    <span class="font-semibold text-xl tracking-tight">LoadLead</span>
  </div>
  <div class="block lg:hidden"> <!-- Navbar button -->
    <button class="flex items-center px-3 py-2 border rounded text-white border-white hover:text-white hover:border-white" onclick="toggleHidden('mobile')">
      <i class="fas fa-bars fill-current h-3 w-3"></i>
    </button>
  </div>
  <div class="w-full block flex-grow lg:flex lg:items-center lg:w-auto xs:hidden sm:hidden" id="mobile">
    <div class="text-sm lg:flex-grow">
      <a href="#home" class="block mt-4 lg:inline-block lg:mt-0 text-white hover:text-white hover:font-semibold mr-4 nav-link"> Home </a>
      <a href="#contact" class="block mt-4 lg:inline-block lg:mt-0 text-white hover:text-white hover:font-semibold mr-4 nav-link"> Contact </a>
      <a href="#pricing" class="block mt-4 lg:inline-block lg:mt-0 text-white hover:text-white hover:font-semibold mr-4 nav-link"> Pricing </a>
    </div>
    <div>
      <a href="#SignUp" class="inline-block mt-4 lg:inline-block lg:mt-0 text-white hover:text-white hover:font-semibold mr-4 nav-link">Sign up</a>
    </div>
  </div>
</nav>



function toggleHidden(e) {
    var element = document.getElementById(e);
    element.classList.toggle('hidden');
}

Code Pen Link

最佳答案

您需要确保您的按钮上有一个事件监听器来调用该元素。

var button = document.getElementById('button'); // Assumes element with id='button'

button.onclick = function() {
    var element = document.getElementById('navbar');  // Assumes element has id of #navbar
    element.classList.toggle('hidden');
}

};

编辑: * 不要忘记将导航栏和按钮的 ID 添加到您的 HTML *

关于javascript - 用 Js 实现响应式可折叠导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49906264/

相关文章:

javascript - 为什么我的 JQuery 推送菜单突然不工作了?

javascript - 如何将从谷歌应用程序脚本 HTMLService 类获取的模板插入到 .html 文件中?

css - 如何在 1st Div 中提供更多数据时动态增加 2nd div 的高度

html - 使用 Bourbon Neat 删除边距嵌套列

javascript - 在 Joomla 3.x 中通过 POST 将数组从 javascript 发送到 php

javascript - 我可以向 Google Apps 脚本类添加自定义方法吗?

html - SVG 图标不会在事件时填充颜色

html - youtube 视频无法正确调整大小

javascript - 在 Canvas 上从边的中间向两个方向绘制一个矩形

javascript - JavaScript 可以存储特定浏览器窗口实例独有的数据吗?