调整屏幕大小后不显示子菜单
Sub-menu not showing up after screen resize
我正在尝试构建一个自定义的响应导航,它将更改为移动设备的100%宽度下拉菜单。我有一些javascript可以隐藏任何子菜单项,如果窗口被调整到新的断点(它在768px处更改),这些子菜单项可能会被打开。然而,如果我以移动大小(小于768px)打开子菜单,然后突然调整窗口大小,悬停效果将不起作用,子菜单项也不会显示在更大的屏幕上。
这是我的导航精简版的JSFiddlehttps://jsfiddle.net/5h5bhwu4/2/
我认为唯一可能导致问题的部分是这个javascript:
if (w > 768) {
$("#nav > li > ul").hide();
}
如果以低屏幕大小单击第一个菜单项,然后调整窗口大小,当您将鼠标悬停在父菜单项上时,它将不会显示相同的子菜单。但是,如果你从更大的屏幕尺寸开始(或者如果你不在低屏幕尺寸下打开子菜单),它会很好地工作。我认为问题出在javascript上,但我看不到任何东西能阻止这个子菜单的显示。
你需要在JS上做悬停效果,而不是在CSS上。
当你看到窗口的大小:
if (w > 768) {
$("#nav > li > ul").hide();
// Put hover here
}
您需要强制悬停,而CSS 无法执行此操作
当您说.hide()
时,它会添加内联样式display:none
,它会一直覆盖样式。最好是有一个类并添加该类。
if (w > 768) {
$("#nav > li > ul").removeAttr('style'); // this is for the style added on slideToggle
$("#nav > li > ul").addClass('hidden');
}
CSS
.hidden {
display: none;
}
Fiddle演示
相关文章:
- 在图像上显示菜单
- 如何在滚动时突出显示菜单按钮 - AngularJs
- 突出显示菜单项及其子菜单项
- 突出显示菜单栏上的活动菜单项
- 如何在外部文件中创建选择菜单并将其嵌入到html中以显示菜单
- 在表格最后一行(链接)中显示菜单,并在单击菜单项时显示模式窗口
- JavaScript:隐藏和显示菜单类
- 突出显示菜单上的错误
- 如何使用 JavaScript 隐藏和显示菜单
- 使用 JavaScript 隐藏和显示菜单 ID
- 隐藏/显示菜单点击javascript
- 获取显示菜单的悬停元素的属性
- 无法突出显示菜单列表的第一个元素
- 右键单击树视图的项目时显示菜单
- Javascript 仅在 iPad 上悬停显示菜单
- 第一次访问网站时,Javascript没有突出显示菜单
- 使用Jquery突出显示菜单
- 使用Angular.js和UI Router突出显示菜单时出现意外类
- jQuery下拉菜单不显示菜单
- 使用css/javascript在悬停时突出显示菜单