2012-04-11 62 views
0

我使用此代碼從test.php輸出讀取數組,然後對其進行排序,然後顯示幻燈片放映的結果。JavaScript顯示圖像逐一

此行有錯誤,因爲只顯示其中一個圖像。

curimg= (curimg < galleryarray.length) 
    curimg + 1; 

這裏是代碼:

> <script type="text/javascript"> 
> var curimg=0; 
> function rotateimages(){ 
> galleryarray.sort(); 
> document.getElementById("picsimg").setAttribute("src", "images/"+galleryarray[curimg]); 
> curimg= (curimg < galleryarray.length); 
> curimg + 1; 
> } 
> 
> window.onload = function(){ 
> setInterval("rotateimages()", 2000); 
> } 
> 
> setTimeout(function(){ 
> window.location.reload(1); 
> }, 20000); 
> 
> </script> 
> 

什麼錯我的代碼?

我的另一個問題是,當我第一次加載頁面時,它顯示一個空白頁面2000毫秒。 //或者上面設置的任何值。

延遲是在圖像加載之前踢,或者我的計數是錯誤的。如何解決這個問題?

這是從我的PHP代碼的輸出:

var galleryarray = new Array(); 
galleryarray[0] = "image1.jpg"; 
galleryarray[1] = "image5.jpg"; 
galleryarray[2] = "image2.jpg"; 
galleryarray[3] = "image4.jpg"; 
galleryarray[4] = "image8.jpg"; 
galleryarray[5] = "image7.jpg"; 
galleryarray[6] = "image0.jpg"; 
galleryarray[7] = "image3.jpg"; 
galleryarray[8] = "image6.jpg";​ 

回答

0

在線路

curimg= (curimg < galleryarray.length); 

您在curimg設定爲布爾值(1或0)。你需要做的是更換線路爲

if(curimg < galleryarray.length) 
    curimg = curimg + 1; 
+0

修好了!謝謝。現在的另一個問題是在第一張圖片加載之前延遲踢入。所以我們在第一張圖像之前看到一個空白頁面。如何解決這個問題? – user1325414 2012-04-11 01:32:50

+0

您可以像預覽[這裏](http://www.pageresource.com/jscript/jpreload.htm)一樣預先獲取圖像。另一種選擇是使用像jQuery這樣的JavaScript庫,它具有插件,可以讓您使用較少的代碼/工作量來執行圖像切片。 – 2012-04-11 01:57:30

0

試試這個:

curimg = (curimg+1) % galleryarray.length; 

這將讓你遍歷galleryarray從開始到結束反覆。

+0

該代碼工作得很好,只有一個問題,當頁面第一次加載時,我看到一個空白圖像,然後看到我的第一個圖像。如何解決這個問題? – user1325414 2012-04-11 01:52:17

+0

'setInterval()'不會馬上運行你的'rotateimages'方法;它會在第一次呼叫之前等待2秒鐘。嘗試在'setInterval'調用之後立即在'window.onload'處理函數內添加對'rotateimages'的調用。 – cebarrett 2012-04-11 03:17:27