2012-04-11 2 views
0

Я использую этот код для чтения массива из вывода test.php, сортировки его и затем отображения результатов, как слайд-шоу.JavaScript show Images один за другим

В этой строке что-то не так, потому что отображается только одно из изображений.

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

ответ

0

В строке

curimg= (curimg < galleryarray.length); 

вы устанавливаете curimg в логическое значение (1 или 0). Что вам нужно сделать, это заменить строки в

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

Это исправлено! Спасибо. теперь другая проблема заключается в задержке срабатывания перед загрузкой первого изображения. поэтому перед первым изображением мы видим пустую страницу. как это исправить? – user1325414

+0

Вы можете предварительно выбрать изображение, как показано [здесь] (http://www.pageresource.com/jscript/jpreload.htm). Другой вариант - использовать библиотеку javascript, такую ​​как jQuery, в которой есть плагины, которые позволяют делать слайд-шоу изображений с меньшим количеством кода/усилий. –

0

Попробуйте вместо этого:

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

Это позволит вам петлю на galleryarray от начала до конца несколько раз.

+0

этот код отлично работает, есть только одна проблема, когда страница загружается в первый раз, я вижу пустое изображение, а затем вижу свое первое изображение. как это исправить? – user1325414

+0

'setInterval()' не будет запускать ваш метод rotateimages'; он будет ждать 2 секунды, прежде чем вызывать его в первый раз. Попробуйте добавить вызов 'rotateimages' внутри обработчика' window.onload' сразу после вашего вызова 'setInterval'. – cebarrett

Смежные вопросы