jQuery fadeIn()

时间:2009-07-22 02:00:49

标签: javascript jquery fadein

如果渐变时间段结束,fadeIn()从0%的不透明度变为100%是什么意思?

我有这个:

function ThreadPost(post, appendToElementId) {

    if (post != null) {
        $("#" + appendToElementId).append("<ol id='" + post.Id + "'></ol>");
        $("#" + post.Id).hide().html(PostHtml(post)).fadeIn(5000);
    }
}

PostHtml()返回“<li>....</li>”。

加载页面时,隐藏<ol>。然后,在5秒后,<ol>突然出现。不会发生褪色。使用Chrome。

5 个答案:

答案 0 :(得分:2)

我遇到了各种奇怪的问题,jQuery fadeIn()和show()只是弹出而不是动画。看看这是否更好:

$("#" + post.Id).css({opacity: 0.0}).html(PostHtml(post)).animate({opacity: 1.0}, 5000);

答案 1 :(得分:1)

您可以尝试取出hide()并让我知道它的作用吗?或者在设置html后将hide()移动到? fadeIn方法无论如何都应该自动隐藏它,但它值得一试。

另外,您是否可以提供有关PostHtml方法的更多信息?它可能是因为它定义的风格使得事情表现得很奇怪。

答案 2 :(得分:1)

我同意@Damovisa,因为我们可以知道 PostHtml 方法的作用 - 如果它进行了Ajax调用,那么它可能会在 fadeIn 超时后完成已经过期,因此褪色实际上看起来不起作用。

答案 3 :(得分:1)

尝试将PostHtml(帖子)硬编码为<li>test</li>。见下文:

function ThreadPost(post, appendToElementId) {

    if (post != null) {
        $("#" + appendToElementId).append("<ol id='" + post.Id + "'></ol>");
        $("#" + post.Id).hide().html("<li>test</li>").fadeIn(5000);
    }
}

如果这适用于硬编码<li>,那么你知道它是PostHtml(帖子),导致你的问题。当我硬编码时,淡入淡出在IE,FF和Chrome中按预期工作。

答案 4 :(得分:0)

您是否尝试在fadeIn()之前调用show():

function ThreadPost(post, appendToElementId) {

    if (post != null) {
        $("#" + appendToElementId).append("<ol id='" + post.Id + "'></ol>");
        $("#" + post.Id).hide().html(PostHtml(post)).show().fadeIn(5000);
    }
}

或简单地摆脱hide():

function ThreadPost(post, appendToElementId) {

    if (post != null) {
        $("#" + appendToElementId).append("<ol id='" + post.Id + "'></ol>");
        $("#" + post.Id).html(PostHtml(post)).fadeIn(5000);
    }
}