2016-03-06 137 views
3

我想使用javascript創建簡單的幻燈片。我寫了一些代碼,但它不能正常工作。如何使用javascript在幾秒鐘後更改圖片

/** 
 
* Created by jahid on 3/7/2016. 
 
*/ 
 
var slideimg = new Array(); 
 

 
slideimg[0] = new Image(); 
 
slideimg[1] = new Image(); 
 
slideimg[2] = new Image(); 
 
slideimg[3] = new Image(); 
 
slideimg[0].src = "images/polygon1.png"; 
 
slideimg[1].src = "images/polygon2.png"; 
 
slideimg[2].src = "images/polygon3.png"; 
 
slideimg[3].src = "images/polygon4.png"; 
 

 
var i=0; 
 
function slideit(){ 
 
    document.getElementById('polygon').src = slideimg[i].src; 
 
    if(i < 4){ 
 
     i++; 
 
    } 
 
    else 
 
     i = 0; 
 
    setTimeout("slideit()",3000); 
 
}

和我的HTML代碼是在這裏...

<div class="box1"> 
 
\t <img src="images/polygon1.png" id="polygon" width="100%" height="220" onload="slideit()"> 
 
</div>

+0

請添加到您的html代碼 – cl3m

+0

''

\t \t \t \t \t \t \t \t \t
有 –

回答

3

你有一點點改變你的代碼和啓動功能:

var i=0; 
function slideit() { 
    if (i >= 4) { 
     i = 0; 
    } 
    document.getElementById('polygon').src = slideimg[i].src; 
    i += 1; 
    setTimeout(slideit,3000); 
} 
slideit(); 
+0

但它仍然不會改變我的圖片 –

+0

我編輯了上面的代碼。它在Chrome中代表我的意思。你的id爲'polygon'的元素是否是'img'標籤? –

+0

是的...我的具有id多邊形的元素是img標記 –

2

您需要刪除"()在您的通話setTimeout()

setTimeout(slideit,3000); 

您目前正在調用一個字符串而不是函數。

+0

將沒有任何問題,如果你把它作爲一個字符串。它將在引擎蓋下進行評估。 –

+0

謝謝,我沒有意識到這一點!所以,當@Dmitriy被回答時,他只需要在聲明它之後調用'slideit()'方法。 – cl3m