2012-08-15 68 views
2

我基本上試圖做一個幻燈片放映,圖片在5秒左右後淡入淡出。幻燈片顯示了一堆堆疊在一起的圖像,而不是並排。如何在5秒後讓img1 fadeout和img2淡入,然後在接下來的5秒後有img2淡出和img3淡入淡出等。jquery自動淡入淡出在一系列圖像上?

我想使用setInterval()函數,但我不知道它是如何工作的。也許延遲()?

回答

2

爲什麼不使用這樣做的插件?有他們噸,其中包括cycle

+0

特別是[光](http://malsup.github.com/jquery.cycle.lite.js)版本,是微小和有用的。 – elclanrs 2012-08-15 22:07:31

+0

Yeh我聽說過插件,但我是初學者,所以我儘量在採取快捷方式之前手動做到。 – Edmund 2012-08-15 22:25:44

+0

這很公平,我全部都是爲了學習;)還有很多很棒的教程,可以引導您完成像這樣的小部件的項目:https://www.google.co.uk/search?q = jquery +幻燈片+教程 – danwellman 2012-08-15 22:32:53

3

你不需要一個插件。這是很容易用幾行代碼做到這一點:

HTML

<div id="images"> 
    <ul 
     ><li><img src="img/11.jpg" width="520" height="203" alt="" /></li 
     ><li><img src="img/12.jpg" width="520" height="203" alt="" /></li 
     ><li><img src="img/13.jpg" width="520" height="203" alt="" /></li 
     ><li><img src="img/14.jpg" width="520" height="203" alt="" /></li 
     ><li><img src="img/15.jpg" width="520" height="203" alt="" /></li 
     ><li><img src="img/5.jpg" width="520" height="203" alt="" /></li 
    ></ul> 
</div> 

CSS

#images ul{position:absolute;right:9px;top:1px;width:520px;height:202px;list-style:none;overflow:hidden} 
#images li{display:none;position:absolute;left:0;top:0;} 

JS

$(document).ready(
    function() { 
    var i = 0, j = 0; 
    var imgs = $('#header ul').children(); 
    runIt(imgs); 

    function runIt() { 
     $(imgs).eq(i).fadeIn(3000, function() { 
     setTimeout(runIt,'200'); 
     }); 
     i = i + 1; 
     if (i == imgs.length) { 
     i = 0; $('#images li').fadeOut(1000) 
     } 
    } 
}); 
+1

該代碼可能會更好tbh。你不需要用新的Array()初始化imgs,因爲.children()將返回一個類似數組的集合。 – danwellman 2012-08-15 22:30:30

+0

好點!更新的代碼:) – 2012-08-16 06:54:24