繁体   English   中英

IE8不透明度问题

[英]IE8 Opacity Issue

我了解,关于IE的不透明性问题,这里发布了无数问题。 我几乎遍历了每个人,并且尝试了几乎所有可以获取的可用方法,但是没有任何效果。

最奇怪的是,不透明度问题是一个孤立的案例,仅在IE8上发生; IE7完全没有问题。 在继续谈论我所面临的问题之前,让我向您展示我正在开发的单页HTML网站中的标记示例:

这是控制有问题的DIV的不透明度的CSS:

#home, #services, #freeport, #about-us, #advantage, #contact{
        opacity:0;
        -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
        filter: alpha(opacity=0);
        width:400px;
        zoom:1;
    }

这是我用来控制其不透明度设置的JQUERY:

$(document).ready(function(){ //fades in the menu div first followed by the home div

    (function _loop( nodelist ) {
    $( nodelist.shift() ).fadeTo( 2400, 1, function() {
        _loop( nodelist );
    });
    }( ["#menu", "#home"] ));

    $("#about-us-button").click(function(){ //upon clicking the home button, fades in the home div and fades out the rest of the divs
          $("#about-us").fadeTo(900, 1);
          $("#home, #freeport, #advantage, #services, #contact").fadeTo(1000, 0);
    });

});

注意:我只显示了单击#about-us-button后#about-us div会如何淡入; 其余各节的工作方式相同。 还省略了HTML,因为它非常简单-DIV容器中保存了一些文本,就是这样。

因此,应用上述CSS样式,我设法使DIV出现在除IE8之外的所有浏览器(包括IE7)中的正确实例上。

最让我感到困惑的是,过滤器可以在IE7中工作,但是-ms-filter(据说是IE8特定的)无法工作。 我已阅读过有关HasLayout问题的信息,并将所有方法都无效。 我还确保了-ms-filter在filter之前,但这也不起作用。

我还采取了使meta标记方法使IE8模仿IE7的方法,但不幸的是,同样失败了。

应该注意的是,我将其标记为HTML5,遇到此问题后,我将其标记为XHTML 1.0 Transitional和HTML 4.0,但没有任何效果-甚至没有将IE8作为IE7方法。

任何人都知道如何解决该问题? 在此先感谢大家!

不久前,我遇到了类似的问题。 我不记得确切的细节,但是我相信发生的事情是jQuery将在元素级别设置不透明度值,并在淡入时不断更改它-然后,一旦淡入完成,属性就会保留在那里,但是空白,覆盖CSS文件的不透明度。 您应该可以使用Firebug或Chrome中的Element Inspector进行仔细检查。

我相信这就是我用来修复错误的方法,它在完成后强制jQuery清理该属性,以便CSS文件中指定的opacity属性实际上可以生效。 当然,请对其进行调整以使其适合您的代码。

$("#darkbg, #popup-movie-panel").fadeIn(300, function(){
        if(jQuery.browser.msie) {
            this.style.removeAttribute('filter');
            }
        })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM