Ciao a tutti,
ho questo problema e non riesco a venirne a capo: ho un array di 16 immagini che vorrei mostrare in sequenza (carico un'immagine, faccio .animate con jquery e con la callback di animate carico la prossima alla fine dell'animazione) in una "griglia" di 16 divs.
Le 16 immagini dovrebbero apparire in posizioni "random", ovvero la prima potrebbe apparire nel decimo div, la seconda nel settimo, ecc. Per questo, ho un array di "posizioni" da cui estraggo un index randomly, poi lo tolgo dall'array perchè non sia più disponibile quando chiamo il prossimo random().
Pare però che non sempre riesca a eliminare l'elemento dall'array "posizioni".
Non so se mi sono spiegata molto bene, posto il codice in ogni caso:
codice:
function GenerateRand() {
intRandom = Math.floor(Math.random()*33); // Random Image (1-32)
szImageSrc = arrImages[intRandom]; // Image
szImageLink = arrLinks[intRandom]; // Link
RandomPos = Math.floor(Math.random()*arrPositions.length); // Random Position (1-16)
alert("Available Positions =>" + arrPositions);
alert("RandPos =>"+ RandomPos);
GetImage(intRandom,szImageSrc,RandomPos,szImageLink);
}
function GetImage(intRandom,imgSource,imgPos,imgLink) {
var img = new Image();
$(img).attr('src', '/Uploads/Logos/' + imgSource)
.load(function () {
var CurrImage = $(this).attr("src");
$(CurrImage).css("opacity","0");
$("#HImage-" + imgPos)
.append("[img]/Uploads/Logos/"+imgSource+"[/img]")
.animate({ opacity: 1 },"slow",function(){
CleanArrays(intRandom,imgSource,imgPos,imgLink);
});
}).error(function () {
alert("Error loading image => " + imgSource);
});
}
function CleanArrays(intRandom,szImageSrc,RandomPos,szImageLink){
arrImages.splice(intRandom,1);
arrRandRand.splice(intRandom,1);
arrPositions.splice(RandomPos,1);
GenerateRand();
}
GenerateRand();