jQuery切换,隐藏,显示 - Chrome覆盖错误

时间:2014-04-29 14:04:05

标签: javascript jquery html css

这个问题是我今天早些时候发布的this问题的继续。

Chrome重叠式错误链接为here

我在我的问题(上面提供的链接)中发布了大部分细节。因此,在摆弄代码并在stackoverflow成员之一的帮助下,我们已经决定问题不是与脚本相关,而是在Chrome上纯粹是CSS问题。

以下是我之前修改的相同功能的3个不同版本

JS版本1(原创) - 进度加载程序适用于FF,Safari但不适用于Chrome和IE

function progressIndicator(value) {

    if(value) {
        $("#progressIndicatorBackground").show();
    }
    else {
        $("#progressIndicatorBackground").hide();
    }
}

JS版本2 - 应用Chrome叠加层修复后 - 没有运气,仍然是同样的问题。

function progressIndicator(value) {

    if(value) {
        $("#progressIndicatorBackground").show();
        var TmpHeigh = $("#progressIndicatorBackground").css('height');
        $("#progressIndicatorBackground").css('height', parseFloat(TmpHeigh)-1);
    }
    else {
        $("#progressIndicatorBackground").hide();
    }
}

JS版本3 - 将显示和隐藏功能更改为切换 - 这使得进度加载程序也适用于Chrome和IE。但是一旦我开始获取JSON内容,显示attubite总是被设置为阻止。正确加载内容后,它不会设置为display:none。所以我一直在页面上预加载。

function progressIndicator(value) {

    if(value) {
        $("#progressIndicatorBackground").toggle();
        var TmpHeigh = $("#progressIndicatorBackground").css('height');
        $("#progressIndicatorBackground").css('height', parseFloat(TmpHeigh)-1);
    }
}

我不知道接下来该做什么以及如何解决问题。我不在乎这是不是很脏。

1 个答案:

答案 0 :(得分:0)

我认为toggleClass()可能会解决这个问题,请看一下fiddle here。只需设置一个隐藏它的类,然后使用display:none之外的其他类,并在希望显示加载栏或要隐藏它时切换它。在我的例子中,我只是设置了Timeout而不是动画加载动画,但希望隐藏/显示方法无论如何都能正常工作。