动态应用CSS滤镜

6
如何动态应用CSS滤镜?我已经在Chrome浏览器中尝试了以下方法。
image.style = "-webkit-filter: brightness(50%);";
4个回答

10

您应该将值设置为webkitFilter属性,而不是style对象。这种语法可以使用

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

如果您不知道JavaScript属性名称,可以通过CSS属性引用它(就像karaxuna建议的那样,也可以这样做):

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

有什么想法可以将两个过滤器组合起来吗?比如 亮度反转 - Maciej Jankowski
1
@MaciejJankowski 只需用空格分隔它们,"brightness(50%) invert()":http://jsfiddle.net/bj4p0sxm/ - Pavlo

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

2
将该过滤器添加到一个类中:
.bright {
    -webkit-filter: brightness(50%);
}

并切换该类:

image.classList.toggle('bright');

@PavloMykhalov:嗯,-webkit属性也不是。 - Blender

-1

1) 检查浏览器是否支持css-filters(如果需要)
2) 检测当前浏览器中“filter”属性是否需要供应商,并保存它
3) 以以下格式设置过滤器值:

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

或者

el.style.vendorFilter = value;

请查看以下小型演示:http://codepen.io/malyw/pen/EDnmt
此外,您还可以找到一个大型演示,展示CSS滤镜的效果:http://malyw.github.io/css-filters/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接