javascript - 如何使用 javascript 创建循环 html 更改背景图像

标签 javascript html

我的 JavaScript 脚本旨在不断更改 HTML 页面的背景图像,但它不会执行其预期的操作。

function CB() {
try {
    var p = {
      Pic1: 'Images/CoolPic2.jpg',
      Pic2: 'Images/CoolPic3.jpg',
      Pic3: 'Images/CoolPic4.jpg'
   };
   var l = p.length;
    i = 0;
    while (i < l) {
        setTimeout(function(){document.body.style.backgroundImage = url(p[i]); }, 3000)
        i += 1;
        if (i > l) {
            i -= l;
            }
    }
}
catch(err) {
    alert(err.message);
}
}

最佳答案

你不需要 while 循环。只需使用 setInterval (这将每 3 秒调用该函数)而不是 setTimeout (这将调用一次)。试试这个

function CB() {
    try {
        var p = [
            'Images/CoolPic2.jpg',
            'Images/CoolPic3.jpg',
            'Images/CoolPic4.jpg'
        ];

        var counter = 0;

        setInterval(function(){
            //document.body.style.backgroundImage = url(p[counter++]);
            console.log(counter++);

            if(counter == 3){
                counter = 0;
            }
        }, 3000)
    } catch(err) {
        alert(err.message);
    }
}

CB();

关于javascript - 如何使用 javascript 创建循环 html 更改背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44168556/

相关文章:

javascript - 缩小 gif 的尺寸作为动画的一部分

javascript - 发生错误时不显示 iframe

JavaScript 正则表达式 : What am I replacing?

javascript - 如何添加一个 onchange 事件来选择标签并让选择标签也有使用 mithril.js 的兄弟选项

javascript - 将输入和选择合并到一个可见的输入字段中

html - excel截断从html中提取的非常大的整数

javascript - 下划线 _.reduce 对象的行为

javascript - FancyBox - 使用 iframe 的箭头/导航

html - 如何使用 javascript 给一个只有 css 的轮播自动播放

html - 即使在调整窗口大小时,也始终使 3 列文本在同一高度或同一行对齐