0
我創建了一個函數,它使用for循環和間隔依次顯示3張圖片。我用一個間隔來等待圖像,clearInterval來停止這個功能。動畫第一次運行完美,但我在第二次運行動畫時遇到問題,並且必須始終刷新頁面。
的Javascriptjavascript間隔的問題
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>
我不知道這個問題是否與for循環,clearInterval或我的設置功能。任何幫助將不勝感激。
'goNow()'末尾應該做什麼'setTimeout'? – Barmar 2014-12-11 01:44:52
您在'goNow()'中定義了'var myTimer = ...',使這個變量侷限於這個函數的作用域。你爲什麼期望它在'change()'中可見? – 2014-12-11 01:49:28
依靠'.hidden'屬性可能不是一個好主意。這是相對較新的,並且實現它的第一個IE版本是IE11。 – Barmar 2014-12-11 01:49:43