gpt4 book ai didi

javascript - 除 Angular 4 的输入外,所有页面上都有阴影

转载 作者:行者123 更新时间:2023-11-30 14:57:22 24 4
gpt4 key购买 nike

我有一个带输入的 Angular 4 应用程序,我想在单击它时专注于此输入。所以我想使除焦点输入之外的所有页面变暗。所以我尝试添加一个黑色背景和 50% 不透明度的 div。

但是输入总是低于 div 而它的 z-index 更高。

这是我的 html 代码:

<router-outlet></router-outlet>
<div id="blanket"></div>

毯子的CSS代码:

#blanket {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: black;
opacity: 0.5;
z-index: 100;
visibility: hidden;
}

在组件中:

<input type="text" class="form-control" style="z-index: 2000000 !important;background-color: #fff" (focus)="focusOnInputName()" (blur)="blurOnInputName()" >

还有两个函数:

focusOnInputName(){
console.log('focus');
let d = document.querySelector('#blanket');
this.renderer.setStyle(d, "visibility", "visible");

}

blurOnInputName(){
console.log('blur');
let d = document.querySelector('#blanket');
this.renderer.setStyle(d, "visibility", "hidden");
}

当聚焦或模糊时,blanket div 出现或消失,但输入始终被“blanket”隐藏。

我该怎么做才能得到我想要的?

编辑我想做与 Bootstrap 模态相同的事情,但要单击输入。

最佳答案

只需将 position: relative 添加到输入元素即可。

.container {
position: relative;
width: 500px;
height: 200px;
top: 10px;
left: 50px;
border: #00f solid 2px;
}
.container input {
z-index: 2;
position: relative; /* Add this */
}
.blanket {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
background: rgba(0,0,0,0.6);
}
<div class="container">
<p>Some text</p>
<p>Some other text</p>
<input placeholder="Type something"/>
<p>Some more text</p>
</div>

<div class="blanket"></div>

关于javascript - 除 Angular 4 的输入外,所有页面上都有阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47036025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com