javascript - 单击时隐藏/显示叠加层
问题描述
我目前在我的页面上有一个叠加层,当我单击某些导航元素(例如搜索/下拉菜单)时会淡入。
我的问题是,如果我单击下拉菜单,然后单击“搜索”菜单项,它会淡出覆盖层并通过显示覆盖层和没有搜索栏来中断。
如果叠加层已经打开,则无需将其淡入,只需单击其他内容时将其淡出即可。
我添加了一个变量来检查它是否已经打开,但显然这对于“FadeToggle”会很麻烦。我已经尝试了很多组合,但似乎无法达到上述要求。
var overlay = false;
$('#myDropdown').on('show.bs.dropdown', function () {
if(overlay == false) {
$(".overlay").fadeIn(150);
overlay = true;
}
})
$('#myDropdown').on('hide.bs.dropdown', function () {
if(overlay == true) {
$(".overlay").fadeOut(150);
overlay = false;
}
})
$( "#searchToggle, #mobileSearchToggle" ).click(function() {
$('.search-bar').toggleClass( "open" );
$('body').toggleClass("noScroll");
$('.dropdown-menu').removeClass('show');
if(overlay == false) {
$(".overlay").fadeToggle(150);
}
});
解决方案
推荐阅读
- r - 可以根据 Metafor 包/R 中的类别在漏斗图中对数据点进行着色吗?
- google-analytics - 什么是忽略 GTM 中未定义变量的最佳方法,其中数据不可用。
- image - 如何从内存(iOS)中卸载 react-native 图像?
- node.js - 应用程序帖子不起作用我没有得到输出
- angular - 如何将元素拖到另一个容器?
- java - 使用 slf4j 的 Spring Boot 没有创建日志文件
- android - 有没有可能在工具栏中将标题居中?
- javascript - 在反应原生中单击平面列表项时如何将值传递给模态并显示模态
- ruby-on-rails - 如何使 `link_to` 在 Rails 中正常工作
- php - 如何在 laravel 5.4 中为所有请求和响应设置日志