JavaScript逐个显示图片

时间:2012-04-11 01:23:59

标签: javascript slideshow

我正在使用此代码从test.php输出中读取数组,对其进行排序,然后像幻灯片一样显示结果。

此行有问题,因为只显示其中一个图像。

    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";​

2 个答案:

答案 0 :(得分:0)

在第

curimg= (curimg < galleryarray.length); 

您正在将curimg设置为布尔值(1或0)。您需要做的是将行替换为

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

答案 1 :(得分:0)

请改为尝试:

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

这将让你从头到尾循环遍历galleryarray。