html - 折叠时出现黑色覆盖
问题描述
当 div 折叠时,我试图在页面的其余部分上获得黑色覆盖。这是我的代码
<script>
$(document).ready(function(){
$('#filter').on('show.bs.collapse hide.bs.collapse', function (e) {
if (e.type == 'show') {
$('body').addClass('overlay');
} else {
$('body').removeClass('overlay');
}
})
})
</script>
<div href="#filter" data-toggle="collapse" data-target="#filter">
Filter your results
</div>
<div class="search collapse show" id="filter" aria-expanded="true">
<!-- Some code -->
</div>
<!-- Rest of page -->
<style>
.overlay{
position: fixed;
top: 0;
left: 0;
height: 100vh;
width: 100vw;
background: black;
opacity: 0.5;
display: block;
z-index: 2;
}
</style>
这段代码的问题是我的身体背景变暗,不透明度为 1,页面的其余部分也变暗,不透明度为 0.5。
我只希望搜索 div是明显的,其余的带有 0.5 不透明度的深色叠加层。
关于如何实现这一目标的任何想法?
解决方案
您正在将覆盖类应用于身体,这意味着您正在将所有.overlay
css 应用于您的身体,即。你的整个页面。.overlay
应该是一个单独的元素,所以添加一个带有类名覆盖的 div,而不是 addClass/removeClass 你显示/隐藏.overlay
. 此外 的z-index
应该.overlay
高于页面的其余部分,z-index
搜索栏的 应该更高。
推荐阅读
- kubernetes - Kubenetes ApiService 删除后重新生成
- php - Laravel 选择左连接新数组索引中的所有列
- visual-studio - 可以将 Directory.Build.Props 的范围限制为单个 Visual Studio 解决方案吗?
- spartacus-storefront - 在 spartacus 服务上请求 URI 太长
- java - 如何简化具有相同方法和不同标头的 REST 控制器?
- r - 在ggplot中定位趋势线回归方程
- php - 如何使用 Spatie 权限包在 Laravel 中定义不同类型的角色?
- laravel - 如何解决使用axios过程中的小问题?
- c# - 开始执行异步任务方法C#时出现异常延迟
- google-sheets - Google 表格:根据选项卡 1 中的下拉变量将数据从选项卡 2 拉到选项卡 1