我基本上試圖做一個幻燈片放映,圖片在5秒左右後淡入淡出。幻燈片顯示了一堆堆疊在一起的圖像,而不是並排。如何在5秒後讓img1 fadeout和img2淡入,然後在接下來的5秒後有img2淡出和img3淡入淡出等。jquery自動淡入淡出在一系列圖像上?
我想使用setInterval()函數,但我不知道它是如何工作的。也許延遲()?
我基本上試圖做一個幻燈片放映,圖片在5秒左右後淡入淡出。幻燈片顯示了一堆堆疊在一起的圖像,而不是並排。如何在5秒後讓img1 fadeout和img2淡入,然後在接下來的5秒後有img2淡出和img3淡入淡出等。jquery自動淡入淡出在一系列圖像上?
我想使用setInterval()函數,但我不知道它是如何工作的。也許延遲()?
爲什麼不使用這樣做的插件?有他們噸,其中包括cycle
你不需要一個插件。這是很容易用幾行代碼做到這一點:
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)
}
}
});
該代碼可能會更好tbh。你不需要用新的Array()初始化imgs,因爲.children()將返回一個類似數組的集合。 – danwellman 2012-08-15 22:30:30
好點!更新的代碼:) – 2012-08-16 06:54:24
當我試圖使用fadein和fadeout切片庫時,IE遇到了問題。我正在使用jQuery庫「http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js」。當我更改爲「http://code.jquery.com/jquery-1.9.1.js」庫時,IE,Chrome和FF都可以使用,我可以跳過所有修改。
特別是[光](http://malsup.github.com/jquery.cycle.lite.js)版本,是微小和有用的。 – elclanrs 2012-08-15 22:07:31
Yeh我聽說過插件,但我是初學者,所以我儘量在採取快捷方式之前手動做到。 – Edmund 2012-08-15 22:25:44
這很公平,我全部都是爲了學習;)還有很多很棒的教程,可以引導您完成像這樣的小部件的項目:https://www.google.co.uk/search?q = jquery +幻燈片+教程 – danwellman 2012-08-15 22:32:53