javascript - 模态显示事件上的模糊内容
问题描述
我正在尝试更改我所有网站内容所在的类(包装器),基本上当用户单击模式打开时,我将样式添加到类“包装器”中,我正在使用.modal-backgrop.in
CSS 添加另一个 CSS是模糊,但不起作用。
这里是风格:
.modal-backdrop.in+#wrapper {
-webkit-filter: blur(10px);
-moz-filter: blur(10px);
-o-filter: blur(10px);
-ms-filter: blur(10px);
filter: blur(10px);
}
解决方案
如果我理解正确,您正在尝试使模态背后的内容变得模糊。要获得这种效果,您可以尝试以下方法之一:
使用backdrop-filter
这仍然是一个实验性的 CSS 属性;然而,它非常简单,因为它将过滤器应用于半透明元素后面的内容。此方法的实现将是:
.modal-backdrop.in + #wrapper {
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}
请注意,由于它仍处于试验阶段,因此不应在生产中使用。
样式化页面本身
使用 JavaScript,您可以向#wrapper
元素添加一个类,例如.modal-open
,然后适当地设置它的样式,或多或少像这样(如果过滤器在包装器内,请记住从模式中删除过滤器):
JS
const wrapper = document.getElementById('wrapper');
function openModal () {
// ...
wrapper.classList.add('modal-open');
}
function closeModal () {
// ...
wrapper.classList.remove('modal-open');
}
CSS
#wrapper.modal-open {
filter: blur(10px);
}
#modal {
filter: none;
}
推荐阅读
- c++ - 丢失范围时的 unique_ptr 读取访问冲突
- objective-c - Object-c ,如何动态声明输入文本的类型或方法,类似于PHP的eval()
- kendo-ui - 当 dateInput 属性设置为 true 时,为什么剑道时间选择器设置为 12:00AM?
- php - 在刀片中使用视图共享
- delphi - 德尔福/拉撒路 | 有没有办法简化全局 OnMouseEnter 事件处理?
- linux - 如何计算目录中的文件并在 if 语句中进行测试?
- python - 如何使用我当前的代码禁用和启用选项卡
- sql - 需要根据某些条件获取数据
- excel - If then else 条件与定义的范围和 msgbox
- javascript - 覆盖我以会话形式输入的值