更改时菜单仍显示@media 查询

Menu Still Show When Change @media query

我有 2 个边栏(side-bar 和 side-bar-mobile)。第一个侧边栏我想在屏幕宽度 > 768px 时看到它,所以我这样做了。

@media only screen and (min-width: 768px){
       .side-bar{
            display: block;
       }
       .side-bar-mobile{
            display: none;
       }
}

并且当屏幕宽度 < 768px 时,侧边栏隐藏,侧边栏移动显示切换,当我点击一个按钮时。
CSS

@media only screen and (max-width: 768px){
       .side-bar{
            display: none;
       }
       .side-bar-mobile{
            display: none;
       }
}


JS

$('#toggle-menu').on('click', function(e){
        $('.side-bar-mobile').slideToggle();
        e.preventDefault();
})

Side-bar-mobile 滑动效果不错。但是当我将 window 调整为正常大小(宽度 > 768px)时,侧边栏移动仍然显示。我现在能做什么?我认为 slidetoggle 函数有问题,当我调整 window 大小时,它会显示侧边栏移动。但我无法解决这个问题。帮我!谢谢。

当屏幕宽度 > 768 时,移动侧边栏无论如何都必须隐藏。

因此,为了做到这一点,您需要像这样注册 window 调整大小侦听器:

window.onresize = function(){
   var h = window.innerHeight 
           || document.documentElement.clientHeight 
           || document.getElementsByTagName('body')[0].clientHeight;
    var w = window.innerWidth 
            || document.documentElement.clientWidth 
            || document.getElementsByTagName('body')[0].clientWidth;

    if(w > 768 ){
        $('.side-bar-mobile').css({display:"none"});
    }
}

同时设置window调整大小条件。 试试这个

$(function(){
var nb = $('#toggle-menu');
var n = $('.side-bar');

$(window).on('resize', function(){
if(nb.is(':hidden') && n.is(':hidden') && $(window).width() >768) {
$('.side-bar').show().addClass('keep-nav-closed');
}
});