2016-03-06 6 views
3

Я хочу создать простое слайд-шоу с помощью javascript. Я написал код, но он работает неправильно.Как сменить фотографии через несколько секунд с помощью javascript

/** 
 
* Created by jahid on 3/7/2016. 
 
*/ 
 
var slideimg = new Array(); 
 

 
slideimg[0] = new Image(); 
 
slideimg[1] = new Image(); 
 
slideimg[2] = new Image(); 
 
slideimg[3] = new Image(); 
 
slideimg[0].src = "images/polygon1.png"; 
 
slideimg[1].src = "images/polygon2.png"; 
 
slideimg[2].src = "images/polygon3.png"; 
 
slideimg[3].src = "images/polygon4.png"; 
 

 
var i=0; 
 
function slideit(){ 
 
    document.getElementById('polygon').src = slideimg[i].src; 
 
    if(i < 4){ 
 
     i++; 
 
    } 
 
    else 
 
     i = 0; 
 
    setTimeout("slideit()",3000); 
 
}

и мои HTML коды здесь ...

<div class="box1"> 
 
\t <img src="images/polygon1.png" id="polygon" width="100%" height="220" onload="slideit()"> 
 
</div>

+0

Пожалуйста, добавьте свой HTML код – cl3m

+0

''

\t \t \t \t \t \t \t \t \t

ответ

3

У вас есть немного изменить свой код и запустить функцию:

var i=0; 
function slideit() { 
    if (i >= 4) { 
     i = 0; 
    } 
    document.getElementById('polygon').src = slideimg[i].src; 
    i += 1; 
    setTimeout(slideit,3000); 
} 
slideit(); 
+0

, но он по-прежнему не меняет мои фотографии –

+0

Я отредактировал этот код. Это слова для меня в Chrome. Ваш элемент с id 'polygon' является тегом' img'? –

+0

Да ... мой элемент с многоугольником id - тег img –

2

Вы должны уронить " и () в вашем setTimeout() вызова:

setTimeout(slideit,3000); 

В настоящее время вы вызываете строку вместо функции.

+0

Там не будет никаких проблем, если вы передаете его в виде строки. Это будет 'eval'uated под капотом. –

+0

Спасибо, я не знал об этом! Итак, как объяснил @Dmitriy, ему просто нужно вызвать метод «slideit()» после объявления его. – cl3m

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