Jan*_*roň 6 javascript css internet-explorer
如果我有这个HTML
<img src="aaa.png" id="a" style="filter: alpha(opacity=100)"/>
Run Code Online (Sandbox Code Playgroud)
然后这个JavaScript在IE6中工作
document.getElementById("a").filters.alpha.opacity = 60;
Run Code Online (Sandbox Code Playgroud)
但如果没有设置风格
<img src="aaa.png" id="a" style=""/>
Run Code Online (Sandbox Code Playgroud)
javascript抛出错误'filters.alpha'为null或不是对象
这段代码有效
document.getElementById("a").style.filter = "alpha(opacity=60)";
Run Code Online (Sandbox Code Playgroud)
但随后应用于图像的其他滤镜将被覆盖.所以问题是:如何将alpha过滤器添加到任何HTML元素并将其他过滤器保留在IE中?
编辑我想纯javascript(而不是jQuery)解决方案
不幸的是,在我看来,你只能通过style.filter属性添加新元素,filters你只能操作已经存在的元素.
filter是一个集合对象,你可以在这里找到docs:filters Collection.它为您提供了一种简单易用的现有过滤器,您可以打开和关闭它们(enabled)等.
例如,您可以使用
obj.filters.item("DXImageTransform.Microsoft.Alpha").opacity=20;
Run Code Online (Sandbox Code Playgroud)
或者(如果alpha是你第一次过滤声明)
obj.filters.item(0).opacity=20;
Run Code Online (Sandbox Code Playgroud)
CLASSES
大多数情况下,最好将过滤器声明存储在CSS中的某些类下,并且只使用JS来分配正确的类而不是style直接操作值.