响应菜单在窗口大小调整时消失
Responsive menu disappearing on window resize
我是一个脚本新手,但一直试图找到一个适合我的响应式菜单解决方案的解决方案。我看到其他人也有类似的问题,但他们似乎使用了不同的方法来制作他们的菜单。
下面是我的代码: HTML:function toggle_visibility(id) {
var e = document.getElementById('menu-items');
if ($(e).css('display') == 'block') {
$(e).slideUp('fast');
} else {
$(e).slideDown('fast');
}
};
.mobile-menu {
display: none
}
@media only screen and (max-width: 680px) {
#menu-items {
display: none
}
.mobile-menu {
display: block;
cursor: pointer;
}
}
<a onclick="toggle_visibility('menu-items');" class="mobile-menu">Menu</a>
<div id="menu-items">
<a href="#">Link</a>
<a href="#">Link</a>
<a href="#">Link</a>
<a href="#">Link</a>
<a href="#">Link</a>
</div>
<!--#menu-items-->
菜单工作得很好,但我遇到的主要问题是,当用户减小窗口大小以显示响应菜单切换按钮,然后使用切换按钮打开然后关闭菜单时,当窗口大小调整回桌面视图时,菜单永远不会返回到正常视图。
奇怪的是,如果用户在移动视图中打开响应式菜单并将大小调整回桌面视图,它会返回,但如果用户关闭菜单则不会返回。
我想在这个菜单上工作的唯一另一件事是,如果用户单击页面上的其他任何地方,但菜单,菜单关闭。目前,用户必须点击菜单切换链接来关闭它。
任何帮助都将非常感激!!
试试这个:
@media only screen and (min-width: 680px) {
#menu-items {
display: block
}
.mobile-menu {
display: none;
cursor: pointer;
}
}
在这里使用slideUp()和slideDown()有点棘手,因为它们设置/删除内联样式'display: none;',当您调整窗口大小时不会删除。这就是为什么菜单没有重新出现:隐藏菜单的内联样式仍然是活动的。
你需要做的是使用类来处理不同设备宽度的显示,并添加钩子到slideUp的完整回调:(JSFiddle)
CSS:.mobile-menu {
display: none
}
@media only screen and (max-width: 680px) {
#menu-items {
display: none
}
.mobile-menu {
display: block;
cursor: pointer;
}
.collapsed {
display: none;
}
}
@media only screen and (min-width: 681px) {
.collapsed {
display:block;
}
}
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');
}
};
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- ExtJS——在展开/折叠时调整面板高度
- Morris.js折线图x轴标签在调整大小后消失
- Div 动画会消失,而不是调整大小
- 图表.js在调整窗口大小时消失
- 如何使用变换让菜单侧边栏消失和调整内容
- 调整屏幕大小后导航栏消失 [引导]
- Highchart在调整大小和不采用父宽度时消失
- jquery菜单在调整大小后消失
- jQuery JavaScript使页脚或其他元素在页面调整大小时消失
- 菜单文本在从移动设备调整到桌面后消失
- 响应jQuery画布,画布背景消失在窗口调整大小
- 背景/内容下半部分消失时,调整大小/最大化窗口
- 在Android的窗口大小调整中,lightbox消失了
- HTML5响应画布:调整浏览器画布大小,绘制消失
- 响应菜单在窗口大小调整时消失
- CSS:当浏览器调整大小(缩小)时,垂直滚动条消失
- 网站部分悬停功能在特定的调整大小时消失
- 为什么当滚动条出现或消失时,调整大小事件不会触发