【发布时间】:2015-08-15 02:02:44
【问题描述】:
我已经构建了一个 jquery 响应式导航菜单。当在移动视图中单击时,它会根据需要隐藏展开的列表项。但在桌面视图中也会隐藏它们(不需要)。我是 jquery 的新手。我试过 enquire.js 但它似乎不起作用。我知道它应该,只是不确定我做错了什么。
我在这个论坛上查看了所有类似的问题,但似乎找不到适合我的答案。我确定这是我在彻底搜索后无法找到的非常简单的几行。这是我正在努力解决的(v.newbie)代码:
$(function() {
var pull = $('#pull');
menu = $('nav ul');
menuHeight = menu.height();
$(pull).on('click', function(e) {
e.preventDefault();
menu.slideToggle();
});
$(window).resize(function(){
var w = $(window).width();
if(w > 510 && menu.is(':hidden')) {
menu.removeAttr('style');
}
});
$(".scroll").click(function(){
$("nav ul").hide(1000);
});
});
我已在此处将我正在处理的内容上传到 JSFiddle: http://jsfiddle.net/ConorMac/9qdd8784/
正如您将看到的,当断点低于 510 像素时,它的行为方式与我希望的方式一致。但是我一辈子都无法让列表项在 510 像素以上时保持不变!任何帮助将不胜感激。还有一个(我敢肯定!非常基础!)的经验教训。
干杯。
【问题讨论】:
-
您能否详细说明“在桌面视图中也隐藏它们”?我不明白这里的预期是什么,因为在我看来,它工作得很好。我不明白什么?
-
对不起,应该在这里详细说明。如果您增加/拖动视口屏幕宽度超过 510 像素,然后单击菜单项,则列表消失。
-
不是因为你在
nav ul元素上调用.hide()吗? -
我想您也需要在
scroll的点击函数中添加一个条件,如果width大于510px,则不隐藏nav ul元素.有意义吗? -
是的,Tahir 说得很有道理,但正如我所说,我对 jquery 有点陌生,我一直在努力研究如何编写那段代码。我尝试用 if ($('nav ul').width()
标签: jquery html css responsive-design