【问题标题】:fadeIn certain object after appending to div?附加到div后淡入某些对象?
【发布时间】:2014-06-07 05:33:07
【问题描述】:

如何使附加的 HTML fadeIn() 不淡入同一类的所有对象?此功能将多次使用,我无法为创建的对象添加 ID,否则会与我即将添加的内容冲突。谢谢你的帮助

CSS:

        #log {
            background-color:#4D4D4D;
            height:400px;
            width:600px;
            left:31%;
            position:fixed;
            z-index:-10;
            margin-top:-10px;
        }
        .logArrow {
            height:24px;
            width:24px;
            background: url('http://www.industus.com/img/log1.png') center no-repeat;
            margin-top:10px;
            display:none;
        }
        .logMsg {
            color:white;
            display:none;
        }
        .inline {
            display:inline-block;
            margin-left:5px;
        }

jQuery:

function log(message) {
                $("<div class='logArrow inline'></div><div class='logMsg inline'>"+message+"</div><br />").appendTo("#log").fadeIn(3000);
}

HTML:

<div id="log">
</div>

【问题讨论】:

  • 你不能在.appendTo('#log')之后添加.fadeIn()吗?
  • 我试过了;这不起作用。
  • 当我添加它时它根本没有做任何事情
  • 你可以为那些你想淡入的元素添加一个“空”类吗?
  • 您正在将类 inline 分配给您要附加的 divs。该类具有display:inline-block;,这将覆盖您与其他类一起设置的display:none;

标签: jquery


【解决方案1】:

您应该将要插入的内容包装在容器 div 中,并将其设置为 display: none,然后在其上调用 .fadeIn()

Example

CSS:

#log {
    background-color:#4D4D4D;
    height:400px;
    width:600px;
    left:31%;
    position:fixed;
    z-index:-10;
    margin-top:-10px;
}
.logArrow {
    height:24px;
    width:24px;
    background: url('http://www.industus.com/img/log1.png') center no-repeat;
    margin-top:10px;
    /* REMOVE display: none; FROM HERE */
}
.logMsg {
    color:white;
    /* REMOVE display: none; FROM HERE */
}
.inline {
    display:inline-block;
    margin-left:5px;
}
.message { /* ADD THIS CLASS */
    display: none;
}

jQuery:

function log(message) {
    $('<div class="message"></div>')
        .append('<div class="logArrow inline"></div>')
        .append('<div class="logMsg inline">'+ message +'</div>')
        .appendTo("#log")
        .fadeIn();
}

【讨论】:

  • 或者保留他的原始代码并在.appendTo()之前添加.hide()
  • @Corey:我的回答更好:-)
  • @Travesty3 如果有更多的代码行意味着更好,那么是的:-)
  • @Corey:代码行数并不重要。代码的清晰性非常重要。与一条非常长的行相比,更容易看到我编写它的方式发生了什么。我还解决了display CSS 属性被inline 类覆盖的问题,进一步清理了代码。
  • @Corey: sigh...同意不同意
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 1970-01-01
  • 2014-04-25
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多