0

如果淡入淡出时间段一到,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>突然出现。不会发生褪色。使用铬。

4

5 回答 5

2

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

$("#" + post.Id).css({opacity: 0.0}).html(PostHtml(post)).animate({opacity: 1.0}, 5000);
于 2009-07-23T09:34:53.233 回答
1

尝试将 PostHtml(post) 硬编码为<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(post),导致您的问题。当我硬编码时,淡入淡出在 IE、FF 和 Chrome 中按预期工作。

于 2009-07-22T14:30:19.570 回答
1

你能试着把它拿出来hide()告诉我它的作用吗?或者hide()在您设置 html 后将其移至?无论如何,fadeIn 方法都应该自动隐藏它,但值得一试。

另外,您能否提供有关该PostHtml方法的作用的更多信息?可能是它定义了让事情表现得很奇怪的风格。

于 2009-07-22T02:35:51.320 回答
1

我同意@Damovisa,因为我们可以知道PostHtml方法的作用 - 如果它执行 Ajax 调用,那么它可能在fadeIn超时到期后完成,因此淡入效果似乎不起作用。

于 2009-07-22T12:56:14.987 回答
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);
    }
}
于 2009-07-23T09:41:12.207 回答