javascript - 在页面 refresn 上显示不同的图像并使用带有 javascript 的计时器
问题描述
我制作了一个基本的单页 html 网站并对其进行了样式设置。我有一个小图片库(6 张图片),我想在每次刷新页面时使用 JS 以不同的顺序显示这些图片。如果页面未刷新,我希望它在计时器上刷新图像。
我知道我必须使用 Math.random,并且可以使用带有间隔计时器的 onload 来更改图像。我已经做了一些研究,但我无法弄清楚如何实现这一点。谁能指出我正确的方向?
这是图片库的 html 部分:
<section id="gallery">
<img src="./images/1.jpg" alt="img0">
<img src="./images/2.jpg" alt="img1">
<img src="./images/3.jpg" alt="img2">
<img src="./images/4.jpg" alt="img3">
<img src="./images/5.jpg" alt="img4">
<img src="./images/6.jpg" alt="img5">
</section>
解决方案
这是一个例子。
const getRandomNumber = (function() {
var nums = [1,2,3,4,5,6];
var current = [];
function rand(n) {
return (Math.random() * n)|0;
}
return function() {
if (!current.length) current = nums.slice();
return current.splice(rand(current.length), 1);
}
}());
const images = document.querySelectorAll('#gallery img');
getRandomImages = () => {
const imagesNums = [];
for (let i = 1; i < 7; i++) {
imagesNums.push(getRandomNumber());
}
images.forEach((img, index) => {
img.src = `./images/${imagesNums[index]}.jpg`
})
}
setInterval(() => {
getRandomImages()
}, 10000);
<section id="gallery">
<img src="./images/1.jpg" alt="img0">
<img src="./images/2.jpg" alt="img1">
<img src="./images/3.jpg" alt="img2">
<img src="./images/4.jpg" alt="img3">
<img src="./images/5.jpg" alt="img4">
<img src="./images/6.jpg" alt="img5">
</section>
推荐阅读
- python - 将熊猫数据框插入neo4j
- c++ - 如何通过高斯平滑(c ++)平滑二维坐标的向量?
- c# - 可空对象必须在 foreach 上有一个值
- graph-databases - 有什么方法可以在 SELECT 语句中使用多个顶点集?
- c# - Net core EF 3.1 LINQ 字符串比较不再起作用
- java - 当元素包含 HTML 标记时,Jackson 反序列化 XML
- r - 来自 approx() 的结果控制顺序
- php - LARAVEL 6.x = 试图获取非对象的属性“id”
- node.js - 从nodejs webhook发送响应表单对话框流的正确方法是什么?
- django - Django Rest - 未创建具有 SlugRelatedField 数据的 ManyToManyField