【问题标题】:Responsive Navigation Menu Resize?响应式导航菜单调整大小?
【发布时间】:2013-06-24 21:42:44
【问题描述】:

我正在尝试构建一个非常简单的响应式导航菜单。这里有一些问题。

  1. 当我将窗口的宽度调整为等于或小于 768px 时,响应式菜单 不管用。
  2. 当我刷新页面时,窗口宽度小于等于 768px,响应式导航有效......但是,如果我调整大小甚至 一像素,响应式导航显示再次隐藏。

我在这里创建了一个 CodePen:http://codepen.io/anon/pen/fHsti

非常感谢您的帮助!

【问题讨论】:

  • 当窗口的宽度小于 768 像素时,您将隐藏菜单。
  • 想要的功能是什么?
  • @AaronBrewer 响应式菜单可以以无数种方式工作。您的代码通过显示或隐藏菜单来“响应”。有什么问题?
  • @AaronBrewer 明白了,谢谢!
  • 你有机会看看这个答案吗?

标签: javascript jquery navigation responsive-design


【解决方案1】:

老实说,解决这个问题的最好方法是只使用 JS 来管理媒体查询之间的导航状态,其他所有内容都应该隐藏在媒体查询中。 MediaCheckmatchMedia 之类的东西是将媒体查询和 JS 联系在一起的好方法。

created a simple demo 使用了你的标记,我想我得到了你正在寻找的功能。我使用 mediaCheck 清除了 768px 主断点之间的任何 JS 强加的内联样式。

【讨论】:

  • 这实际上效果很好。您能再向我解释一下 MediaCheck 和 matchMedia 之间的区别吗?我查看了 github 上的文档,但至少可以说很少。谢谢!
  • matchMedia.js 是 matchMedia browser API 的 polyfill。 mediaCheck 是 matchMedia 的包装器(API,我知道令人困惑),并为不支持 matchMedia 的浏览器提供后备。
【解决方案2】:

更改此代码。您需要在事件处理程序中使用if 语句,否则只有在加载时窗口的宽度小于 768 像素时才会绑定事件。

jQuery("nav p.active").on("click", function(){
  if (jQuery(window).width() <= 768) {
    jQuery("nav ul").toggle("fast");
  }
});

http://codepen.io/anon/pen/BHbon

【讨论】:

  • 谢谢你,但如果我要从纵向模式转到横向模式,菜单就会关闭。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多