2013-02-13 69 views
6

如何动态应用CSS过滤器?对于Chrome我已经尝试了以下内容。动态应用CSS过滤器

image.style = "-webkit-filter: brightness(50%);"; 

回答

9

你应该设定值的webkitFilter财产,不给style对象。这句法will work

image.style.webkitFilter = "brightness(50%)"; 

如果你不知道JavaScript属性的名称,你可以通过CSS属性引用它(如karaxuna建议,will work too):

image.style["-webkit-filter"] = "brightness(50%)"; 
+0

任何想法如何结合两个过滤器?说'亮度'和'颠倒'? – 2014-09-17 21:57:28

+1

@MaciejJankowski只是用空格分开,''亮度(50%)invert()“':http://jsfiddle.net/bj4p0sxm/ – Pavlo 2014-09-17 23:39:20

+0

谢谢!你是老板! – 2014-09-19 07:52:43

2

该过滤器添加到类:

.bright { 
    -webkit-filter: brightness(50%); 
} 

并切换该类:

image.classList.toggle('bright'); 
+0

@PavloMykhalov:嗯,也不是'-webkit'性质。 – Blender 2013-02-13 10:00:39

3
image.style["-webkit-filter"] = "brightness(50%)"; 
0

1)检查浏览器支持CSS -filters(如果需要)
2)如果检测的“过滤器”属性在当前的浏览器需要供应商,并将其保存在格式
3)设置过滤器值:

el.style["-vendor-filter"] = value; 

el.style.vendorFilter = value; 

检查它小的演示:http://codepen.io/malyw/pen/EDnmt
您也可以找到大量的演示显示在行动CSS滤镜:http://malyw.github.io/css-filters/