2012-10-23 56 views
2

我知道這是周圍很多,但我不能得到它的工作:/遍歷圖像

<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然後淡入圖像,但無論我做什麼都行不通。

我試圖走這行:

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

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

     }); 
    </script> 

回答

3

你可以試試這個。

$(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/

+0

這個很好用:)非常感謝! – Alias

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> 
+0

當然可以,但是我需要它循環顯示圖像,每隔X(5)秒鐘將它們進入和退出。就像無法控制它的幻燈片一樣。 – Alias

+0

我已經編輯我的答案,你可以使用setInterval來確定一個循環 –

+0

只是一個問題,爲什麼每個函數裏面的'i'參數? –

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(); 
}); 
+0

演示在FF和Chrome上不起作用。 – elclanrs

+1

@elclanrs奇怪...... http://jsbin.com/amocov/1/edit在FF和Chrome中測試 –

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

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

以及這只是最簡單的方法,除此之外ü可以嘗試切換或淡入從JQuery的

/輸出功能