2017-04-03 71 views
0

我有四个不同文字大小的div。 我想淡入4个div,但div可能只会在前一个div完全可见时淡入。当其他div淡入100%时淡入div

$('.MESSAGE_CONTAINER:last').hide(); 
$('.MESSAGE_CONTAINER').each(function(index) { 
     if($(this).text().length > 50){ 
      delayNumber = 2500; 
     }else{ 
      delayNumber = 800; 
     } 
     $(this).delay(delayNumber*index).fadeIn(200); 
}); 

以上是我的代码,但我不确定如何在:nth-​​child部分中使用:visible。 我已经试过如下:

if($('.CONTAINER:nth-child(index)').is(':visible')){ 
    $(this).delay(delayNumber*index).fadeIn(200); 
} 

回答

2

fadeIn采取这是一个回调,一旦该元件在已经褪色,将被称为第二个参数下面是一个例子,你如何可以利用这一点,一个辅助函数:

function fadeInNext($divs, delay, index) { 
 
    index = index || 0; 
 
    if (index < $divs.length) { 
 
    $divs.eq(index).fadeIn(delay, fadeInNext.bind(this, $divs, delay, index + 1)); 
 
    } 
 
} 
 

 
$('div').hide(); 
 

 
fadeInNext($('div'), 500);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div>div1</div><div>div2</div><div>div3</div><div>div4</div>