javascript - 非引导可折叠导航栏

标签 javascript jquery html css

我正在尝试设置我的代码,以便在我单击 ID 为“#toggleNav”的链接时

    <a href="#" id="toggleNav"><i class="fa fa-bars"></i></a>

它将添加或删除 id 为“#nav”的元素的“.hidden”类

    <ul class="navbar navCollapse" id="nav">
      <span class="links">
        <a href="#">
          <li>Home</li>
        </a>
    ...

“隐藏”类:

    *.hidden {
      display: none;
    }

这样它将作为导航栏上的切换按钮,但由于我只有在屏幕尺寸小于 600 像素时才会打开它,所以我希望它仅在屏幕为 599 像素或更小时默认为 .hidden,并且默认仅在尺寸为 600 像素或更大时显示。

如果有更简单的方法,或者我需要一个插件,我将不胜感激任何有帮助的回复。

而且我不想使用任何 Bootstrap 或其他框架 - 最好只使用 CSS 或 javascript,也许还有 jQuery。

谢谢!

最佳答案

你可以通过 css 媒体查询来做到这一点,像这样:

@media (max-width: 600px) {
  *.smhidden {
    display: none;
  }
}

将此类添加到您的元素,这样即使 .hidden 类消失了,如果屏幕尺寸小于 600,.smhidden 类仍将隐藏该元素。

编辑

您可以通过 JavaScript 设置默认值:

var windowWidth = window.innerWidth;
if (windowWidth < 600) {
    $('#nav').addClass('hidden');
} 

关于javascript - 非引导可折叠导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33059921/

相关文章:

javascript - sweetalert 删除确认 laravel

javascript - 需要一个正则表达式来验证开始的双引号是否结束

html - 为什么我在 objShell 上收到 "necessary object"错误?

javascript - replace() 方法不替换任何东西

javascript - 循环中的 Array.pop() 真的比 Array.length = 快 50 倍吗

javascript - 使用 *ngFor 将 Angular Material 中的对象数组分组

jquery - 页面重新加载后保持当前 Bootstrap 选项卡处于事件状态,而不会跳转到之间的第一个选项卡

jquery - 如何使用 css3 动画沿 flex 路径为球设置动画?

html - 带边框的 css 菜单移出页面?

html - 使用 Css 响应式媒体查询,我的子 div 不接受我输入的边距。