簡體   English   中英

不了解在沒有設置FOR或WHILE循環的情況下幻燈片如何循環播放?

[英]Dont understand how slideshow loops without FOR or WHILE loop being set?

我敢肯定,答案很簡單而且很明顯,但是我對下面的代碼如何循環感到困惑。 如您所見,它只是用於簡單的幻燈片放映,而我似乎無法理解的是,幻燈片放映是如何在沒有FOR或WHILE循環的情況下循環的。 我可以看到該函數由SetTimeout調用,但我的理解是該方法僅調用一次函數?

<img name="slide" width="400" height="200" />

var i = 0;          // Start Point
var images = [];    // Images Array
var time = 3000;    // Time Between Switch

// Image List
images[0] = "http://lorempixel.com/400/200/animals";
images[1] = "http://lorempixel.com/400/200/sports";
images[2] = "http://lorempixel.com/400/200/food";
images[3] = "http://lorempixel.com/400/200/people";

// Change Image
function changeImg(){
document.slide.src = images[i];

// Check If Index Is Under Max
if(i < images.length - 1){
  // Add 1 to Index
  i++; 
} else { 
    // Reset Back To O
    i = 0;
}

// Run function every x seconds
setTimeout("changeImg()", time);
}

// Run function when page loads  
window.onload=changeImg;
  1. 您將方法附加到窗口加載事件處理程序
  2. 瀏覽器在窗口上觸發load事件,然后執行changeImg函數
  3. 運行changeImg,最后在“時間”持續時間之后為changeImg函數執行setTimeout
  4. “時間”過去了,setTimeout開始了changeImg
  5. 運行changeImg,最后在“時間”持續時間之后為changeImg函數執行setTimeout
  6. “時間”過去了,setTimeout開始了changeImg
  7. 更改Img運行,...

因此,通過遞歸,您正在創建邏輯的間接循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM