Моя цель - предварительно загрузить изображения, которые находятся в массиве, а затем мгновенно отобразить случайное изображение одним нажатием кнопки.При следующем щелчке должно появиться другое случайное изображение из массива.Вот код:
let randomImage = new Array(24);
function preload() {
for (let x = 1; x < randomImage.length; x++) {
randomImage[x] = "img/img" + x + ".jpg";
}
for (let i = 1; i < randomImage.length; ++i) {
let img = new Image();
img.src = randomImage[i];
}
}
function randomImg() {
let random = Math.floor(Math.random() * randomImage.length);
if (random === 0) {
return randomImage[1];
}
document.getElementById("img_placeholder").src = randomImage[random];
}
Что это должно сделать, это сначала предварительно загрузить массив изображениями (функция preload ()).
Затем функция randomImg () вызывается каждый разкнопка нажата.Это хорошо работает для сафари, но в chrome он сначала правильно загружает все изображения, но затем, когда я нажимаю кнопку, чтобы перейти к следующему случайному изображению, он посылает еще один запрос get, чтобы загрузить изображение снова, вместо этого в safari, где он просто принимает загруженныйimage.
Что я здесь не так делаю?
Вот представление при загрузке страницы, изображения также загружаются:
Но когда нажата кнопка переключения на случайное изображение, изображения по-прежнему загружаются снова:
Это только с Chrome, оно отлично работает с Firefox и Safari.