javascript - 我需要做什么才能创建幻灯片
问题描述
向正在阅读本文的人问好。我是一名学习计算机科学的学生,对于本学期的退出项目,我必须编写一个 3 页的网页。第一页包含一个由 3 张图像组成的幻灯片,这些图像应该每 5 秒循环一次,我在试图弄清楚它背后的逻辑时遇到了麻烦。我创建了一个 div,并在其中放置了 3 个图像,还创建了一个数组来保存 3 个图像,我希望有任何有用的提示/提示。这段代码不完整,但到目前为止我能从逻辑上想出的就是这些。
function imageCaller(){
const images = ["opportunity.jpg", "Yu-Yu-Hakusho.png", "Bloodborne.jpg"];
img.src = images[0];
for (let images=0; images< images.length; images++)
}
function imageTimer() {
let timer = setInterval(imageCaller, 5000);
}
解决方案
尝试创建一个持续变量来跟踪数组的当前索引 - 正在显示的当前图像。然后,在每次迭代中(每次调用函数时),递增索引,并在需要时循环回 0。
const imageCaller = (() => {
const images = ["opportunity.jpg", "Yu-Yu-Hakusho.png", "Bloodborne.jpg"];
let index = 0;
return () => {
img.src = images[index];
index = (index + 1) % images.length;
};
})();
function imageTimer() {
let timer = setInterval(imageCaller, 5000);
}
(() => {
and用于创建函数自己的})();
自包含范围 - 封装images
andindex
变量。它们只对 有用imageCaller
,因此最好避免污染全局命名空间。如果您不想这样做,可能更容易理解的替代方法是:
const images = ["opportunity.jpg", "Yu-Yu-Hakusho.png", "Bloodborne.jpg"];
let index = 0;
function imageCaller(){
img.src = images[index];
index = (index + 1) % images.length;
}
function imageTimer() {
let timer = setInterval(imageCaller, 5000);
}
推荐阅读
- aws-lambda - 过滤 dynamo db 表会产生无效的 KeyConditionExpression GSI
- python - 如何在 Python 中将 FITS 文件中的光谱中的像素转换为波长?
- css - CSS z-index 不适用于相对位置
- elasticsearch - Kibana 6.3.0 Gauge - 在仪表板中隐藏滚动条
- r - 用某些条件划分列的条件除法
- javascript - PHPMailer - 无法访问文件
- google-closure-compiler - 如何为 Google Closure Compiler 网页版设置参数?
- javascript - 如何在 Angular 4 中禁用 FormArray 中的 FormControl
- spring-boot - 如何将 Jconsole(Jdk/bin) 与 SpringBoot 应用程序集成以管理动态记录器配置
- r - 使用 R/Plotly 更改热图的 y 轴刻度值