【问题标题】:-ms-filter with javascript-ms 过滤器与 javascript
【发布时间】:2026-01-26 07:50:02
【问题描述】:

如何在 javascript 中实现 -ms-filter?

我尝试了以下不起作用:

document.getElementById(ba[i]).style.sFilter = 
      'progid:DXImageTransform.Microsoft.Alpha(Opacity=' + value*10 + ')';

另一个问题。如果我想更改元素的字体颜色,我使用了以下内容(再次在除 IE8 之外的所有内容中工作):

document.getElementById(ba[i]).style.color = '#B4D8FD';

【问题讨论】:

    标签: javascript html css internet-explorer-8


    【解决方案1】:

    这是您的参考:

    http://msdn.microsoft.com/en-us/library/ms532847(VS.85).aspx

    如果你想使用-ms-filter,使用这些

    注意,css 过滤器必须在项目中定义为内联样式属性或类,否则无法访问 filters.item 属性!!

    一些示例代码:

    <style>
    .macska 
    {
        opacity:1;
        -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
        filter:alpha(opacity=100);
    }
    </style>
    
    <div id="xxx" style="background-color: #CCC; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=100)" class="macska">
    CONTENT
    </div>
    
    <script>
    o = document.getElementById('xxx');
    o.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 20;
    </script>
    

    这行不通:

    <style>
    .macska 
    {
        opacity:1;
        -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
        filter:alpha(opacity=100);
    }
    </style>
    
    <div id="xxx" style="background-color: #CCC;>
    CONTENT
    </div>
    
    <script>
    o = document.getElementById('xxx');
    o.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 20;
    </script>
    

    【讨论】:

      【解决方案2】:

      尝试使用cssText 属性。

      document.getElementById(ba[i]).cssText = 'color:#B4D8FD; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=' + value*10 + ');';
      

      【讨论】:

        【解决方案3】:

        我认为你能做的第一个问题

        document.getElementById(ba[i]).style['-ms-filter'] = 'progid:DXImageTransform.Microsoft.Alpha(Opacity=' + value*10 + ')';
        

        对于问题 2,请尝试上述方法。

        document.getElementById(ba[i]).style['color'] = '#B4D8FD';
        

        【讨论】:

        • 在 IE 中不起作用:document.getElementById(ba[i]).style['-ms-filter']