循环图像

时间:2012-10-23 09:06:48

标签: jquery html css

我知道这很多,但我无法让它发挥作用:/

    <div class='container'>
        <img src="images/1.jpg" alt="">
        <img src="images/2.jpg" alt="">
    </div>

所以我有2张图片,下面的CSS被修复为浏览器窗口的完整大小:

        <style type="text/css">
        .container {
            position:fixed; 
            top:-50%; 
            left:-50%; 
            width:200%; 
            height:200%;
        }
        .container img {
            position:absolute; 
            top:0; 
            left:0; 
            right:0; 
            bottom:0; 
            margin:auto; 
            min-width:50%;
            min-height:50%;
        }
    </style>

目前,它只显示最后一张图像(2)以全尺寸显示。但是,我想使用一些jQuery来显示第一个,然后在X秒之后,淡出数字1并在每个图像中循环淡出。我认为最好使用setInterval,然后使用fadeOut然后使用fadeIn图像,但无论我做什么都不起作用。

我试图沿着这条路走下去:

        <script type="text/javascript">
        $(document).ready(function() {

            $('.container').children('img').each(function(i) { 
                $(this).fadeOut();
            }); 

        });
    </script>

5 个答案:

答案 0 :(得分:4)

你可以试试这个。

$(document).ready(function() {
    var _intervalId;

    function fadeInLastImg()
    {
        var backImg = $('.container img:first');
        backImg.hide();
        $('.container' ).append( backImg );
        backImg.fadeIn()
    };

    _intervalId = setInterval( function() 
    {
        fadeInLastImg();
    }, 1000 );

});​

这是jsFiddle http://jsfiddle.net/KQ3wu/128/

答案 1 :(得分:1)

<强> jsBin demo

刚刚修改了Fademe jQuery插件以移除鼠标悬停因为您使用全屏图像:):

(function($){
    $.fn.fademe = function(F,P,S){
        F=F||700;
        P=P||3000;
        S=S-1||0;       
        var e=this.children(), T;
        function a(){ e.eq(S=++S%e.length).fadeTo(F,1).siblings(e).stop(1).fadeTo(F,0); }
        e.eq(S).show().siblings(e).hide();
        function aa(){T=setTimeout(function(){a();aa();},F+P);}aa();
    };
})(jQuery);



// USE PLUGIN:
$(function(){    
  $('.container').fademe();  
});

答案 2 :(得分:0)

试试这段代码:

<script type="text/javascript">
        $(document).ready(function() {
            var intervalId = setInterval(function() {
              $('.container').find('img').each(function(i) { 
                $(this).fadeOut();
              }); 
            $(this).data('intervalId', intervalId);
        });
    </script>

答案 3 :(得分:0)

<script>
function showImage1()
{
    $('#IDimage1').show();
    setTimeout(showImage2,3000);
}

function showImage2()
{
   $('#IDimage1').hide();
   $('#IDimage2').show();
}
</script>

这是最简单的方法,除此之外你可以尝试从JQuery中切换或淡出/淡出函数

答案 4 :(得分:0)

使用plugin jquery-timing它是一个单行:

$.repeat(1000).$('#container img:first').hide().appendTo('#container').fadeIn();

看作小提琴:http://jsfiddle.net/creativecouple/zjUEs/