Cada 0-2 segundos estoy creando una imagen en una ubicación aleatoria dentro de un div como este
setTimeout("addImage()", Math.floor((Math.random() * 2000) + 1)); Quiero que estas imágenes desaparezcan entre 3 y 5 segundos después de su creación. Usando $('img').first().remove() puedo eliminar la imagen más antigua, pero quiero eliminarla específicamente en un momento posterior a su creación, no solo la más antigua. Esto será suficiente si no hay otra manera, pero no es lo ideal.
Créelos, luego establezca un tiempo de espera para ellos individualmente.
setInterval("addImage()", Math.floor((Math.random() * 2000) + 1)); function addImage() { var tmpImg = new Image(); tmpImg.src = 'https://picsum.photos/200?' + new Date().getTime(); $('#imgs').prepend(tmpImg); tmpImg.onload = function() { setTimeout(() => { $(this).fadeOut() }, 4000); }; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id='imgs'></div>