gpt4 book ai didi

javascript - 文件夹中的随机照片 - JavaScript

转载 作者:行者123 更新时间:2023-11-30 19:05:29 25 4
gpt4 key购买 nike

我想创建一个网站,它会随机下载目录中的任何照片,除了脚本只有要显示照片的文件夹的位置。没有文件名。例如,我有“图像”目录,我希望脚本随机显示图像(不要输入文件名)。

这是我的脚本:

const btnPhoto = document.createElement('button');
btnPhoto.innerText = 'change image';
const fieldPhoto = document.createElement('div');
document.body.appendChild(btnPhoto);
document.body.appendChild(fieldPhoto);

function getRandomArbitrary(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}

btnPhoto.addEventListener('click', () => {
fieldPhoto.innerHTML = `<img src="${'*.jpg, *.png, *.bmp'[getRandomArbitrary(0, 1)]}">`;
});

最佳答案

正如问题评论中所解释的那样,这不能单独使用 vanilla javascript 来完成,因为您需要提前提供图像列表或图像名称的某种模式。

如果你可以使用 php,那么这就可以了:

<body></body>

<script>
// your current code
const btnPhoto = document.createElement('button');
btnPhoto.innerText = 'change image';
const fieldPhoto = document.createElement('div');
document.body.appendChild(btnPhoto);
document.body.appendChild(fieldPhoto);

// This is what you need server side scripting
let images =
<?php
$images = glob("images/*.{jpg,jpeg,png}", GLOB_BRACE);
echo json_encode($images);
?>;

// gets random image from array
let length = images.length;
function getRandomImage() {
let random = Math.floor( Math.random() * length );
console.log(random); // this is to see what number you get, safe to delete
return images[random];
}

btnPhoto.addEventListener('click', () => {
fieldPhoto.innerHTML = '<img src="' + getRandomImage() + '">';
});
</script>

在此示例中,php 仅用于从名为"images" 的文件夹中的图像列表生成数组。

作为旁注,php 中使用的函数json_encode 要求php 等于或高于5.2.0。

//编辑

如果您只需要在页面加载时使用随机图像并且可以避免动态创建图像,您可以这样做:

<?php
$images = glob("images/*.{jpg,jpeg,png}", GLOB_BRACE);
$randomIndex = rand(0,sizeof($images)-1);
$randomImage = $images[$randomIndex];
?>
<img src="<?php echo $randomImage;?>">

关于javascript - 文件夹中的随机照片 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59036962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com