Jquery图像逐一淡出?

时间:2014-02-11 03:22:11

标签: jquery

我想知道如何使用Jquery逐个显示我的图像(sorta淡入)。 基本上我有一个图像网格,我希望这些图像在页面加载时逐个显示。

以下是我的代码:

        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
        <div id="images">
                <a href="#"><img src="" alt=""/></a>
                <a href="#"><img src="" alt=""/>
                <a href="#"><img src="" alt=""/></a>
                <a href="#"><img src="" alt=""/></a>
                <a href="#"><img src="" alt=""/></a>
        </div>

        <script type="text/javascript">
            $(document).ready(function() { 
                $('#images').find('a').fadeIn(500);
            });
        </script>

如何使用Jquery实现这一目标?

谢谢! =]

2 个答案:

答案 0 :(得分:4)

请尝试以下代码:

$("img").each(function(idx){
    $(this).delay(100*idx).fadeIn(500);
});

每张图像的淡入淡出时间将比前一张图像晚100毫米(100 * idx)。

以下是我测试此技术的一个页面:hexagons apperaring in sequence

答案 1 :(得分:1)

有几种方法可以做到这一点discussed here

以下方法使用"complete" callback添加新事件 - 下一个淡入淡出将不会启动,直到当前的事件结束,无论多长时间。这种方法的一个优点(和缺点)是推迟创建/排队后续动画。

var $elms = $('#images').find('a');
$elms.fadeOut(0);

var elms = $.makeArray($elms); // a real array for .shift
function fadeNext () {
   // get next element
   var e = elms.shift();
   if (e) {
      // queue animation, rinse and repeat when it's complete
      $(e).fadeIn(500, fadeNext);
   }
}
fadeNext();

(以及corresponding jsfiddle。)