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>

任何想法如何让它在每个来源上停止然后重复?

4

2 回答 2

2

您的代码中有错字:

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

应该length不是lenth

于 2013-01-08T23:53:03.417 回答
0

问题是浏览器在不重新渲染页面的情况下执行 JavaScript 片段。所以你实际上改变了 src,但是浏览器没有显示任何动画,因为它只是显示结束时的状态。

要创建动画,使用 window.setTimeout()。

for您可以更改函数中的,而不是循环(while等),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 以查看发生了什么。

于 2013-01-09T01:49:01.887 回答