我有一个 div 表,我正在尝试制作动画。我想创建一种效果,其中新的 div 会“凸起”先前的 div。这是三个消息的 fiddle 。现在,您可以看到 Message i3 覆盖了 Message 2。相反,我希望 Message 1 和 2 凸起。最简单的方法是什么?我将增加消息 3,并最终添加消息 4、5、6 等。
fiddle :http://jsfiddle.net/3fcbfbuu/
HTML:
<div class="prewrapper">
<div class="sentmessage ">
<div class="messagetext ">
<div id="conversation1" >Message 1</div>
</div>
</div>
<div class="sentmessage ">
<div class="messagetext ">
<div id="conversation5" >Message 2</div>
</div>
</div>
</div>
<div class="wrapper" id="wrapper_l">
<div id="part3" class="sentmessage">
<div class="messagetext ">
<div id="conversation2" >Message 3</div>
</div>
</div>
</div>
Javascript:
setTimeout(
function(){
$("#wrapper_l").animate({bottom: '0%'},{duration: 500});
} ,1000)
CSS:
.fullconversation {
height:32%;
width: 100%;
display: block;
position: relative;
}
.prewrapper{
width: 100%;
position: absolute;
bottom: 0%;
}
.wrapper {
width: 100%;
position: absolute;
bottom: -200%;
}
.messagetext{
display: inline-block;
}
.prewrapper{
width: 100%;
}
.sentmessage{
border-top-width: 2px;
border-top-style:solid;
border-top-color: #e3e3e4;
width:100%;
height:100%;
display: block;
overflow:hidden;
}
谢谢大家的帮助!
最佳答案
与其对包装器使用绝对位置,不如将它们置于正常流中,并使用 CSS3 转换为新添加的消息设置动画。
setTimeout(
function() {
$("#wrapper_l").addClass("in");
}, 1000)
.fullconversation {
height: 32%;
width: 100%;
display: block;
position: relative;
}
.global-wrap {
width: 100%;
position: absolute;
bottom: 0%;
overflow: hidden;
}
.prewrapper {
-webkit-transition: all .3s ease;
}
.wrapper {
-webkit-transform: translate(0, 200px);
-webkit-transition: all .3s ease;
position: absolute;
}
.wrapper.in {
-webkit-transform: translate(0);
position: relative;
}
.messagetext {
display: inline-block;
}
.prewrapper {
width: 100%;
}
.sentmessage {
border-top-width: 2px;
border-top-style: solid;
border-top-color: #e3e3e4;
width: 100%;
height: 100%;
display: block;
overflow: hidden;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="global-wrap">
<div class="prewrapper">
<div class="sentmessage ">
<div class="messagetext ">
<div id="conversation1">Message 1</div>
</div>
</div>
<div class="sentmessage ">
<div class="messagetext ">
<div id="conversation5">Message 2</div>
</div>
</div>
</div>
<div class="wrapper" id="wrapper_l">
<div id="part3" class="sentmessage">
<div class="messagetext ">
<div id="conversation2">Message 3</div>
</div>
</div>
</div>
</div>
关于javascript - 使用 CSS 动画提升 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28932867/