Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 窗口调整时响应菜单消失_Javascript_Jquery_Html_Menu_Responsive Design - Fatal编程技术网

Javascript 窗口调整时响应菜单消失

Javascript 窗口调整时响应菜单消失,javascript,jquery,html,menu,responsive-design,Javascript,Jquery,Html,Menu,Responsive Design,我对脚本有点生疏,但一直在尝试找到一个适合我的响应菜单解决方案的解决方案。我见过其他人有类似的问题,但他们似乎在菜单上使用了不同的方法 这是我的密码: HTML: 功能切换\u可见性(id){ var e=document.getElementById('menu-items'); if($(e).css('display')=='block'){ $(e).slideUp('fast'); }否则{ $(e).向下滑动(“快速”); } }; .mobile菜单{ 显示:无 } @仅介质屏幕

我对脚本有点生疏,但一直在尝试找到一个适合我的响应菜单解决方案的解决方案。我见过其他人有类似的问题,但他们似乎在菜单上使用了不同的方法

这是我的密码:

HTML:

功能切换\u可见性(id){
var e=document.getElementById('menu-items');
if($(e).css('display')=='block'){
$(e).slideUp('fast');
}否则{
$(e).向下滑动(“快速”);
}
};
.mobile菜单{
显示:无
}
@仅介质屏幕和(最大宽度:680px){
#菜单项{
显示:无
}
.手机菜单{
显示:块;
光标:指针;
}
}

试试这个:

@media only screen and (min-width: 680px) {


 #menu-items {
    display: block
  }
  .mobile-menu {
    display: none;
    cursor: pointer;
  }

}
试试这个:

@media only screen and (min-width: 680px) {


 #menu-items {
    display: block
  }
  .mobile-menu {
    display: none;
    cursor: pointer;
  }

}
在这里使用slideUp()和slideDown()有点棘手,因为它们设置/删除内联样式“display:none;”当您调整窗口大小时,不会将其删除。这就是菜单没有重新出现的原因:隐藏菜单的内联样式仍然处于活动状态

您需要做的是使用类以不同的设备宽度处理显示,并将挂钩添加到slideUp的完整回调:()

CSS:

JS:

在这里使用slideUp()和slideDown()有点棘手,因为它们设置/删除内联样式“display:none;”当您调整窗口大小时,不会将其删除。这就是菜单没有重新出现的原因:隐藏菜单的内联样式仍然处于活动状态

您需要做的是使用类以不同的设备宽度处理显示,并将挂钩添加到slideUp的完整回调:()

CSS:

JS:

function toggle_collapsed_class(e) {
    $(e).css('display', '').addClass('collapsed');
};

function toggle_visibility(id) {
    var e = document.getElementById('menu-items');
    if ($(e).css('display') == 'block') {
        $(e).slideUp('fast', function(){
            toggle_collapsed_class(e)
        });
    } else {
        $(e).removeClass('collapsed').slideDown('fast');
    }
};