在整个身体的某些元素上添加和删除过滤器

时间:2018-03-20 09:12:20

标签: javascript html css

所以,我有一个div(一个表单的容器)和一个菜单。我想模糊背景,除了容器和div,从菜单中按下某个按钮,让它成为:

<div class="button"><a href="#" onclick="someBlurrFunction()">Contact</a></div>

我知道我可以用它来完成我的工作:

body > *:not(.loginContainer):not(#navDivWrapper) {
filter: blur(3px); 
}

但是一旦应用,我真的不知道如何删除此过滤器。我在游荡,我怎么能用Javascript做到这一点,但我是Javascript的菜鸟,我无法弄明白。我在考虑

var elems = document.body.getElementsByTagName("*");

然后在循环中检查所有选定元素中的特定元素。但我也无法从中获得模糊的风格。

1 个答案:

答案 0 :(得分:2)

  

但是一旦应用,我真的不知道如何删除此过滤器。

您可以查询相同的css选择器并应用filter:none

var elements = document.querySelectorAll( "body > *:not(.loginContainer):not(#navDivWrapper)" );
Array.from( elements ).forEach( s => s.style.filter = "none" );