javascript - 重复 div 的背景图像
问题描述
我正在尝试更改 div 的背景图像,但不知何故它运行一次并显示最后一个图像而不是迭代。
JS
let wrapper = document.querySelector('.wrapper');
let backImages = ['backimage1.jpg', 'backimage2.jpg', 'backimage3.jpg'];
// First way
setInterval(() => {
for (let bg in backImages) {
wrapper.style.background = `url('${backImages[bg]}')`;
}
}, 3000);
// Second way
let changeBg = () => {
for (let bg in backImages) {
wrapper.style.background = `url('${backImages[bg]}')`;
}
};
setInterval(changeBg, 3000);
我怎样才能让它无休止地迭代所有图像。
解决方案
我希望这是你需要的:
let wrapper = document.querySelector('.wrapper');
let backImages = ['backimage1.jpg', 'backimage2.jpg', 'backimage3.jpg'];
wrapper.style.background = `url('${backImages[0]}')`;
let startIndex = 0;
setInterval(() => {
startIndex = startIndex + 1;
if (startIndex == backImages.length) {
startIndex = 0;
}
wrapper.style.background = `url('${backImages[startIndex]}')`;
}, 3000);
<div class="wrapper"></div>
推荐阅读
- javascript - 使用上下文映射鼠标坐标
- html - 如何使用两个条件动作制作 Haml 表单
- javascript - 输入框计算器不会改变结果值
- azure - 如何将 SSL 证书附加到 Azure 容器实例
- java - 如何在java中连续读取在线/网络文件?
- bash - Jenkins shell 脚本:sed: -e expression #1, char 54: unterminated `s' command
- javascript - Threejs UV 协调纹理尺寸过大问题
- mysql - SQL 数据更新查询 关于
- c# - 无法添加参考:System.Web.Http 4.0.0
- regex - 正则表达式 Laravel 验证以检查输入