【问题标题】:using hide/show jQuery and innerWidth for specific screen dimensions to hide mobile menu when clicked on anchor link使用隐藏/显示 jQuery 和 innerWidth 用于特定屏幕尺寸,以在单击锚链接时隐藏移动菜单
【发布时间】:2020-05-05 17:08:27
【问题描述】:

我的菜单中有一个锚链接,所以当我点击它时,覆盖移动菜单不会消失。 出于这个原因,我使用了隐藏/显示 jQuery,什么有效,但它导致我的桌面屏幕菜单也消失了。在我看来,我需要正确添加 innerWidth ,但我对此感到很挣扎。 代码下方:

$(function() {
$(document).ready(function(){
    if(window.innerWidth < 769 && ".link5Click".click(function(){
        $('#myNav').hide();
    }));
 else 
    $("#hamburger").click(function(){
        $('#myNav').show();
    })
})

});

当我使用以下代码时,我的汉堡按钮停止工作

var onMobile = window.matchMedia("screen and (max-width: 768px)"); 
if (onMobile.matches) {
    $(".link5Click").click(function() {
    $("#myNav").hide();
});
} else {
    $("#hamburger").click(function() {
    $('#myNav').show();
});
}

【问题讨论】:

  • 一切都很好,我发现所有工作都出了什么问题

标签: jquery mobile menu


【解决方案1】:

顺便说一句,如果您只想隐藏和显示某些元素或菜单,您可以使用 CSS 媒体查询并根据屏幕尺寸使用 display:block 或 display:none 来实现。

此外,如果您希望不同的元素根据屏幕大小以不同的方式工作,可以说在移动设备上单击要隐藏菜单,在桌面上单击要显示菜单。您可以根据媒体查询分配 CSS 类,并且可以通过 vanilla js 或 jQuery 应用该类,因为媒体查询该类将根据屏幕大小采取不同的行为。

希望你能明白。

【讨论】:

  • YES 你对隐藏/显示元素是正确的,它的工作原理是这样的,但我说的是 JS/jQuery 功能,以及 JS 中的移动菜单我必须用 JS/jQuery 操作它不是关于媒体查询。我有一个带有覆盖背景的移动菜单,我使用锚链接来联系同一页面上的部分,因此页面不会重新加载,并且单击菜单链接后的菜单覆盖不会消失。
  • 你能分享你的代码 sn-p 以便更好地理解吗?
猜你喜欢
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-30
  • 1970-01-01
  • 2020-02-16
  • 1970-01-01
相关资源
最近更新 更多