使用JS和JQuery进行幻灯片放映延迟图像循环

问题描述

我正在尝试使用JS和JQuery创建一些幻灯片。下面的代码有效(某种程度上),但是在显示下一张图像之前不会延迟;马上显示出来。我试图让它延迟5秒再显示下一张图片我有点新手,如果代码不可靠,请您道歉。

*更改了URL使其更具可读性。

感谢您的帮助!

var backgroundImg = ["https://x1.jpg","https://x2.jpg"];
var backgroundImgLength = backgroundImg.length;

var z = 0;

do {

        slideShow(backgroundImg[z]);
        z++;

}
while (z < backgroundImgLength);

function slideShow(url) {

    setTimeout(function() {
        
        $('.header-section').css('background-image','url(' + url + ')');

    },5000);        

}

解决方法

我会尝试以这种方式使用它:

const backgroundImg = [
    "https://picsum.photos/id/237/200/300","https://picsum.photos/id/239/200/300"
];
const backgroundImgLength = backgroundImg.length;

let backgroundImgIndex = 0;
let backgroundImgUrl = backgroundImg[backgroundImgIndex];

const changeImage = function() {
    $('.header-section').css('background-image','url(' + backgroundImgUrl + ')');
}

const getNextImgIndex = function() {
    return (backgroundImgIndex + 1 < backgroundImgLength) ? backgroundImgIndex + 1 : 0;
}

// setInterval allows us to run a function repeatedly,// starting after the interval of time,// then repeating continuously at that interval.
const timerId = setInterval(function() {
    backgroundImgIndex = getNextImgIndex();
    backgroundImgUrl = backgroundImg[backgroundImgIndex];
  
    changeImage();
},5000);

changeImage();

请在这里https://codepen.io/vyspiansky/pen/jOqqNmQ