2013-01-08 150 views
0
<img id="slideshow" src="4.png" alt="image" width="264" height="264"/> 
<script> 
    source=["1.jpg", "2.JPG", "3.JPG"]; 
    for (var i=0; i<source.length; i++) 
    { 
     document.getElementById("slideshow").src = source[i]; 
    } 
</script> 

不太明白爲什麼這不起作用,我意識到這將停止對圖像,以及我認爲至少大聲笑,但它不顯示任何圖像。爲什麼不能用這個幻燈片代碼工作?

任何幫助將非常感謝。

  <img id="slideshow" src="4.png" alt="image" width="264" height="264"/> 
      <script> 
      source=["1.jpg", "2.JPG", "3.JPG"]; 
      var i=0; 
      var c=0; 
      while (i<=0) 
      { 
      if (c<source.length) 
      document.getElementById("slideshow").src = source[c]; 
      c++; 
      else 
      c=0; 
      } 
      </script> 

任何想法如何讓它停止在每個來源,然後重複?

+0

這一個實際上有點棘手(如果你沒有想到錯字),因爲它不會引發錯誤。雖然你可能已經注意到,循環體沒有執行,因此檢查了循環條件,然後發現錯字。 –

回答

2

你有一個錯字在你的代碼:

for (var i=0; i<source.lenth; i++) 
         ~~~~~ 
        ^

應該lengthlenth

+0

上帝我甚至檢查錯別字大聲笑,謝謝 – Mikey

0

的問題是,瀏覽器的JavaScript執行的片段,而不會重新渲染頁面。所以你實際上改變了src,但瀏覽器不顯示任何動畫,因爲它只是在結束時顯示狀態。

爲了創建動畫,window.setTimeout()被使用。

而是一個循環(forwhile和這樣),你改變的函數src,然後用window.setTimeout()調用相同的功能。

一樣,

var num = 0; 

function foo(){ 
    num = ++num % 4; 
    document.getElementById("image").src = "image"+num+".jpg" 
    window.setTimeout("foo()", 300); 
} 

提示:

  1. 嘗試jQuery和建立在它之上的庫。

  2. 在Firefox中安裝插件的Firebug和調試Javascript來看看發生了什麼事情。