Ho una funzione che fa lo slide di una serie di div, all'interno di un altro div contenitore.
Funziona tutto perfettamente, tranne che per una cosa:
le slide sono tre, quando clicco la prima slide, questa scompare istantaneamente; lo stesso quando clicco la seconda. Solo quando clicco la terza (e quindi ritorna a vedersi la prima) il movimento della slide in uscita è visibile. Lo slide funziona a carousel, con un loop continuo tra le slide, ma anche andando avanti ad oltranza, il movimento della slide in uscita è visibile solo quando passo dalla terza alla prima.
Perchè?
Questo è il codice della funzione:
codice:
function slidePict(lr) {
var direction = lr;
activeSlide = "#q"+currentSlide;
var act_z = $(activeSlide).css("z-index");
var up = act_z;
var succ = act_z + 1;
var down = act_z - 1;
var as_pos = $(activeSlide).position().left;
if (direction == "sx") {
if (currentSlide <= Math.round(nrSlide - 1)) {
newSlide = "#q"+Math.round(currentSlide + 1);
currentSlide = currentSlide + 1;
} else {
newSlide = "#q1";
currentSlide = 1;
}
//move to sx
$(activeSlide).animate({
left: '-=1250'
}, 1000, function(){
$(activeSlide).css({"left": as_pos+"px", "z-index": down});
});
} else if (direction == "dx") {
if (currentSlide >= 2) {
newSlide = "#q"+Math.round(currentSlide - 1);
currentSlide = currentSlide - 1;
} else {
newSlide = "#q"+nrSlide;
currentSlide = 1;
}
//move to dx
$(activeSlide).animate({
left: '+=1250'
}, 1000, function(){
$(activeSlide).css({"left": as_pos+"px", "z-index": down});
});
}
$(newSlide).css({
"z-index": act_z
});
}