显示React门户时模糊背景

时间:2018-06-07 18:36:43

标签: javascript html css reactjs modal-dialog

我使用React门户在表单提交后创建模式弹出窗口。我想模糊背景,并在图片2中显示模态。我在第一张图片中使用了document.body.style.filter = "blur(5px),但它模糊了一切。 模态和模态根的CSS(我的代码几乎与门户的React文档相同)

```
#modal-root {
  position: relative;
  z-index: 999;
}
.modal {
  background-color: rgba(0,0,0,0.5);
  position: fixed;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: auto;
  z-index: 99999;
}```

What I have so far

what I want it to look like

3 个答案:

答案 0 :(得分:4)

您模糊的元素的每个子项都将应用该过滤器。既然你有类似于门户网站文档的代码,那么我将假设你的html结构是这样的

<html>
  <body>
    <div id="app-root"></div>
    <div id="modal-root"></div>
  </body>
</html>

如果是这种情况,则将过滤器应用于app-root aka ...

document.getElementById('app-root').style.filter = 'blur(5px)'

答案 1 :(得分:1)

因为你的模态是固定的,所以当你的模态打开时,要模糊背景,添加

  backdrop-filter: blur(8px);

  backdropFilter: blur(8px);

你的模态主体的风格,这应该可以完成工作。

答案 2 :(得分:0)

你可以将身体包裹在一个外面的div中,然后模糊,确保你的模态在你的模糊之外&#34;模糊&#34; DIV?