I have made an image grid using flexbox on a webpage that I am working on. There are 8 boxes in the grid, and I would like to randomly chose one and assign it one of 12 random images every 2 seconds. My approach is to have an array of urls to the images I would like to pick from, generate a random number to select which box with have its image changed, and then pick a random image and assign it to the background image of that box. I would just like to ensure that the same image does not appear twice, as well as include some sort of transition rather than simply changing the image. Any help here is greatly appreciated.
HTML:
<div class="stats__grid--desktop">
<div class="grid__top">
<div class="grid__top--item one" style="background-image: url(../css/images/work-template/bench/stats2/a.png);"></div>
<div class="grid__top--item two" style="background-image: url(../css/images/work-template/bench/stats2/b.png);"></div>
<div class="grid__top--item three" style="background-image: url(../css/images/work-template/bench/stats2/c.png);"></div>
<div class="grid__top--item four" style="background-image: url(../css/images/work-template/bench/stats2/d.png);"></div>
</div>
<div class="grid__mid">
<div class="grid__top--item five" style="background-image: url(../css/images/work-template/bench/stats2/e.png);"></div>
<div class="grid__top--item six" style="background-image: url(../css/images/work-template/bench/stats2/f.png);"></div>
<div class="grid__top--item seven" style="background-image: url(../css/images/work-template/bench/stats2/g.png);"></div>
<div class="grid__top--item eight" style="background-image: url(../css/images/work-template/bench/stats2/h.png);"></div>
</div>
</div>
jQuery:
window.setInterval(function() {
var imgArray = ["../css/images/work-template/bench/stats2/j.png", "../css/images/work-template/bench/stats2/k.png", "../css/images/work-template/bench/stats2/l.png"]
var imgSelect = 0 + Math.floor(Math.random() * 2);
var number = 1 + Math.floor(Math.random() * 8);
if (number == 1) {
var imgChange = "one";
}
else if (number == 2) {
var imgChange = "two";
}
else if (number == 3) {
var imgChange = "three";
}
else if (number == 4) {
var imgChange = "four";
}
else if (number == 5) {
var imgChange = "five";
}
else if (number == 6) {
var imgChange = "six";
}
else if (number == 7) {
var imgChange = "seven";
}
else if (number == 8) {
var imgChange = "eight";
}
else {
var imgChange = "nine";
}
$("." + imgChange).css( "background-image", "url("+imgArray[imgSelect]+")" );
var temp = $("." + imgChange).css("background-image")
console.log(temp)
}, 500);