2014-03-04 22 views
-3

我正在尋找一種方法,把所有的圖像到一個數組,然後在「幻燈片放映」使用他們...繼承人是我到目前爲止有:使用JavaScript將圖像放入數組中?

HTML

<div id="header"> 
</div> 

JS

function onload() { 
    var i = 0; 
    var imageList= [<?php 
     $dir='/assets/splashs/'; 
     $files = scandir($dir); 
      foreach((array)$files as $file){ 
       if($file=='.'||$file=='..') continue; 
      $fileList[]=$file; 
     } 
    ?>]; 

    setInterval(function() { 
     document.getElementById("header").style.backgroundImage="url(imagelist+i)"; 
     i++ 
    },3000); 
} 

注:圖像列表是從另一個線程採取

編輯:

我得到的錯誤:Uncaught SyntaxError: Unexpected token < global.js:3

當前的代碼不工作,所以我如果您有任何的有什麼不同或能夠解決它不知道?

+0

你在調用'onload()'嗎? –

+1

'var = imageList = []'裏面的PHP代碼不是創建輸出,你應該使用'echo json_encode($ fileList)' – Girish

+0

你的'imageList'實際上是否被填充? – putvande

回答

0

也許問題就在這裏:

document.getElementById("header").style.backgroundImage="url(imagelist+i)"; 

應改爲

document.getElementById("header").style.backgroundImage="url("+imagelist[i]+")"; 

希望它能幫助。

0
 function onload() { 
     var i = 0; 
     var imageList = [ <?php echo implode(",", glob('./assets/splashs/*.*')); ?> ]; 

     setInterval(function() { 
      document.getElementById("header").style.backgroundImage = "url("+imagelist[i]+")"; 
      if (i === (imageList.length - 1)) { 
       i = 0; 
      } else { 
       i++ 
      } 
     }, 3000); 
    } 

我已經添加了重置,當數組中的最後一張圖片顯示時,它返回到第一個。 +整理圖像的循環。

+0

似乎是使用mod'%'操作符的理想時間。 – Xotic750

+0

我剛剛搜索了一下,你能告訴我你是如何在我的代碼中實現的。謝謝@ Xotic750 :)。將來會嘗試學習如何做。 –

+0

當然,你想創建一個問題,我會發佈一個答案,或者看看http://stackoverflow.com/questions/8900652/what-does-do-in-javascript – Xotic750

相關問題