Я создал функцию, которая показывает 3 изображения один за другим с использованием цикла for и интервала. Я использовал интервал ожидания между изображениями и clearInterval, чтобы остановить функцию. Анимация выполняется в первый раз, но у меня возникают проблемы с запуском анимации во второй раз и всегда нужно обновлять страницу.
JavascriptНеисправность с интервалом javascript
var currentImageIndex = 1;
var maxImageIndex = 0;
var images = [];
var setUp = function() {
images = document.images;
maxImageIndex = 3;
currentImageIndex = 0;
i = 0
}
function change() {
var i;
if (currentImageIndex > 2) {
images[currentImageIndex - 1].hidden = true;
clearInterval(myTimer);
setUp();
} else {
currentImageIndex = currentImageIndex += 1
}
for (i = 0; i < maxImageIndex; i += 1) {
images[i].hidden = (i !== currentImageIndex);
}
}
window.onload = function() {
setUp()
};
function goNow() {
images[currentImageIndex].hidden = false;
var myTimer = setInterval(change, 1000);
setTimeout;
}
HTML
<button onclick="goNow()">Button</button>
<div id="imgs">
<img src="http://upload.wikimedia.org/wikipedia/commons/2/2b/GoraBeluha.jpg" width = "100%" height="600" id="i1" hidden>
<img src="../Downloads/loose-leaf-paper-clipart-paper-clip-art_1404142000.jpg" width = "100%" height="600" id="i3" hidden>
<img src="../Downloads/img-thing.jpeg" width = "100%" height="600" id="i2" hidden>
</div>
Я понятия не имею, является ли проблема с для петель, clearInterval или моя функция нАлАдкА. Любая помощь будет принята с благодарностью.
Что такое 'setTimeout' в конце' goNow() 'должен делать? – Barmar
Вы определили 'var myTimer = ...' в 'goNow()' делая эту переменную локальной для области этой функции. Почему вы ожидаете, что это будет видно в 'change()'? –
Вероятно, не стоит полагаться на атрибут '.hidden'. Он относительно новый, и первая версия IE, которая его реализует, - IE11. – Barmar