【问题标题】:How to disable a responsive mobile menu jquery command for desktop view如何禁用桌面视图的响应式移动菜单 jquery 命令
【发布时间】: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


【解决方案1】:

使用纯 CSS - @media 标签...

@media (max-width: 510px){
    ul{
        < styles go here >
    }
}

您对ul 应用的任何样式仅适用于屏幕尺寸为 510 像素或以下的情况。

【讨论】:

  • 是的。我已经在 css 中有@media。它的 jquery 命令把我弄乱了。不过还是谢谢。
猜你喜欢
  • 2013-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多