2013-01-08 113 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来看看发生了什么事情。