1

我在主 div 标签内有一组 div 标签,我根据条件按顺序显示。我将不得不在时间延迟后逐行显示内部 div 标签。我怎么做?

<div id="comments" class = "u4073_container">
@if (@Messages != null)
{
for (int i = 0; i < Messages.Count; i++)
{
    if (Messages[i].MessageType == 0)
    {
            <div id="lblBlack" style="color:black;font-size: 13px;font-style: normal; font-family: Arial;">@Messages[i].Message </div>
            <div style="height: 5px;"></div>                

    }
    else if (Messages[i].MessageType == 1)
    {
            <div id="lblGreen" style="color:green;font-size: 13px;font-style: normal; font-family: Arial;">@Messages[i].Message </div>
            <div style="height: 5px;"></div>
    }
    else if (Messages[i].MessageType == 2)
    {
            <div id="lblRed" style="color:red;font-size: 13px;font-style: normal; font-family: Arial;">@Messages[i].Message </div>
            <div style="height: 5px;"></div>
    }
    else if (Messages[i].MessageType == 3)
    {
            <div id="lblBlue" style="color:blue;font-size: 13px;font-style: normal; font-family: Arial;">@Messages[i].Message </div>
            <div style="height: 5px;"></div>
    }

}
}
</div>

在此先感谢您的帮助 !!!

4

1 回答 1

0

您可能想要做的是在所有内容都已经生成时在客户端进行处理,对吧?首先,您应该设置以下样式:

#comments > div { display: none; }

那么,您的脚本可能与此类似:

$(function() {
    var to = 0;
    $("#comments > div").each(function(i, e) {
        to += 500;
        setTimeout(function() { $(e).fadeIn(); }, to);
    });
});

这应该可以,但是您的“间隔” div 也可以计算在内。摆脱它们,只需添加margin-bottom: 5px到您的lbl*div 中。

这是演示。当然,你可以通过调整500(ms)数来控制超时。

于 2013-08-06T11:47:12.420 回答