我在div中有一些div,它位于div中。最外面的div为.major_data
然后是.commitment_box
,然后是子div .commitment
。承诺处于淡出周期,因此一个fadeOut()
和另一个fadeIn()
。问题就出现了,在最后一个div为fadeOut()
后,第一个没有出现。如需更多许可,请参阅此fiddle。
JS:
function tick() {
var $obj = $(".major_data .commitment_box .commitment");
$obj.first().delay(1000).fadeOut(function () {
$obj.first().insertAfter($obj.last());
tick();
});
}
tick();
HTML:
<div class="major_data">
<div class="commitment_box">
<div class="commitment">
<p>Alex:</p>
<p>He's works great.</p>
</div>
<div class="commitment">
<p>Alex 1:</p>
<p>He's works great.</p>
</div>
<div class="commitment">
<p>Alex 2:</p>
<p>He's works great.</p>
</div>
<div class="commitment">
<p>Alex 3:</p>
<p>He's works great.</p>
</div>
<div class="commitment">
<p>Alex 4:</p>
<p>He's works great.</p>
</div>
</div>
</div>
CSS:
.major_data .commitment_box {
text-align: center;
height: 40px;
overflow: hidden;
}
.major_data .commitment_box .commitment p {
display: inline-block;
}
.major_data .commitment_box .commitment p:first-child {
font-weight: bold;
margin-right: 20px;
}
你可以清楚地看到问题是什么。在Alex 4...
之后,第一个没有出现。
答案 0 :(得分:3)
您忘了向第一个fadeIn()
添加obj
。因此,在一个周期消失后,您隐藏它,所有div
都设置为display:none
。你的代码:
function tick() {
var $obj = $(".major_data .commitment_box .commitment");
$obj.first().fadeIn().delay(1000).fadeOut(function () {
$obj.first().insertAfter($obj.last());
tick();
});
}
tick();