javascript - 有没有办法在屏幕调整大小时关闭导航下拉菜单?
问题描述
我有一个引导程序 4 导航栏/下拉菜单,在桌面上它们以 css 动画/淡入打开。在移动设备上,我用单独的“切换”按钮打开它们。一切都按预期工作,但是如果我在移动设备上打开下拉菜单,然后调整我的窗口屏幕大小,下拉菜单保持打开状态并且它不能很好地播放动画。有没有办法在窗口调整大小或到达桌面断点时关闭下拉菜单?
HTML:
<ul class="navbar-nav">
<li class="nav-item dropdown">
<div class="nav-title-flex-container">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href=“home.html"
id="navbar-drop-downs"
aria-haspopup="true" aria-expanded="false">
<span class="underline"> Home</span>
</a>
<span class="openNav"><i class="fa fa-angle-right"></i></span>
</div>
<div class="dropdown-menu dropdown-menu-nav-bottom"
aria-labelledby="navbar-drop-downs">
<a class="dropdown-item" href=“#”>Sub Page</a>
<a class="dropdown-item" href=“#”>Sub page</a>
</div>
</li>
<li class="nav-item dropdown">
<div class="nav-title-flex-container">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="how-to-be-vocal.html"
id="navbar-drop-downs"
aria-haspopup="true" aria-expanded="false">
<span class="underline”>About </span>
</a>
<span class="openNav"><i class="fa fa-angle-right"></i></span>
</div>
<div class="dropdown-menu dropdown-menu-nav-bottom"
aria-labelledby="navbar-drop-downs">
<a class="dropdown-item" href=“#”>Sub Page</a>
</div>
</li>
</ul>
CSS:
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@media (min-width: 1199px) {
.dropdown:hover > .dropdown-menu {
display: block;
z-index: 100;
position: absolute;
animation: fadein .7s;
}
}
jquery:(切换下拉/移动)
$openNavToggle.on('click', function () {
$(this).parent().next('.dropdown-menu-nav-bottom').toggleClass('show');
$(this).find('i').toggleClass('fa-angle-right--active');
});
解决方案
您可以在窗口上侦听调整大小事件:
window.addEventListener('resize', (e)=>{
// ... call your show/hide here.
// ... and/or check new width and do logic on this.
});
推荐阅读
- react-native - 无法呈现 FlatList react-native (Clojurescript) 的数据元素
- python - 根据 mqtt 响应运行 python 代码
- android - Android > 如何获取双卡设备中两张卡的服务状态?
- php - 如何让 ip 在我的 htaccess 中与允许/拒绝一起使用(使用 php)
- c# - 如何插入多对多实体而不会出现跟踪问题(已被跟踪)?
- postman-testcase - 如何从邮递员的 XML 响应中提取测试脚本的值
- flutter - 如何每次将随机值添加到另一个屏幕中的字段
- javascript - 如何在javascript中的for循环结束时编辑值
- activemq-artemis - ActiveMQ Artemis 两个集群在同一个网络中
- javascript - 默认情况下已选中复选框时应隐藏 HTML 表格