某些HTML没有'我不想在IE中显示/隐藏.为什么

Certain HTML doesn't want to get shown/hidden in IE. Why?

本文关键字:IE 显示 为什么 隐藏 我不想 没有 HTML 某些      更新时间:2023-09-26

我有以下HTML:

<div id="loading-overlay">
    <div id="loading-overlay-background"></div>
    <div id="loading-overlay-content">
        Processing...
        <br />
        <img src="@Url.Content("~/Content/img/ajax-loader.gif")" title="" alt="Please Wait" />
    </div>
</div>

和CSS:

#loading-overlay
{
    position:fixed;
    width:100%;
    height:100%;
    top:0;
    left:0;
    z-index:5000;
}
#loading-overlay-background
{
    position:relative;
    width:100%;
    height:100%;
    top:0;
    left:0;
    background-color:#000;
    opacity:0.5;
    filter:alpha(opacity=50);
    z-index:5001;
}
#loading-overlay-content
{
    position:fixed;
    top:25%;
    left:50%;
    margin-left:-150px;
    margin-top:-20px;
    height:40px;
    width:300px;
    color:#fff;
    text-align:center;
    z-index:15002;
}

下面是一些JavaScript(jQuery):

$.ajax({
                url: 'controller/action',
                beforeSend: function () {
                    $('#loading-overlay').show();
                },
                success: function (data, textStatus, jqXHR) {
                },
                error: function (xhr) {
                },
                complete: function () {
                    $('#loading-overlay').hide();
                }
            });

为什么我的"加载覆盖"没有显示在任何AJAX调用的任何版本的IE中?

编辑:是的,它在FireFox和Chrome上运行得很好。这些AJAX调用可能需要从几分之一秒到大约20秒的时间才能完成。警报消息确实会显示,但HTML不会。

试试这样的东西,

beforeSend: function () {
   $('#loading-overlay').show(1);
},
complete: function () {
    $('#loading-overlay').delay(500).hide(250);
}

在这里看到它的实际操作。。

编辑:

您也可以尝试降低动画帧速率。

使用jQuery.fx.interval = 50;

默认情况下,此值设置为13毫秒。增加此值可以通过使用.fadeIn()来减轻CPU资源的负担。但在调整时要谨慎。点击此处阅读更多信息。

谢谢大家,我只是很困惑,因为我的覆盖显示在除IE之外的所有浏览器中,现在这对所有浏览器都很好,我已经在jsf页面中集成了同样的内容,这很好。

因为您完全隐藏了它。

它在成功/错误回调后被调用。