Un help al volo (se possibile...)
Ho una funzione che mostra una serie di div.
Il passaggio avviene in due modi differenti: cliccando su prev / next, avviene uno slide orizzontale, con un effetto easing; cliccando sui link relativi a ciascun div, c'è un effetto fade che crea una dissolvenza incrociata.
Questo è il codice (per la parte che crea la transizione):
Codice PHP:
function animate(dir,clicked){    
            
true;    
            switch(
dir){
                case 
'next':
                    
t+1;
                    
= (-(t*w-w));
                    
current(t);
                    if(
o.autoHeight){autoHeight(t);}
                    if(
s<3){
                        if (
t===3){$(o.slides,obj).children(':eq(0)').css({left:(s*w)});}
                        if (
t===2){$(o.slides,obj).children(':eq('+(s-1)+')').css({position:'absolute',left:(w)});}
                    }
                    $(
o.slides,obj).animate({leftm}, o.slidespeed,function(){
                        if (
t===s+1) {
                            
1;
                            $(
o.slides,obj).css({left:0},function(){$(o.slides,obj).animate({left:m})});                            
                            $(
o.slides,obj).children(':eq(0)').css({left0});
                            $(
o.slides,obj).children(':eq('+(s-1)+')').css({ position:'absolute',left:-w});                
                        }
                        if (
t===s) $(o.slides,obj).children(':eq(0)').css({left:(s*w)});
                        if (
t===s-1) $(o.slides,obj).children(':eq('+(s-1)+')').css({left:s*w-w});
                        
false;
                    });                    
                    break; 
                case 
'prev':
                    
t-1;
                    
= (-(t*w-w));
                    
current(t);
                    if(
o.autoHeight){autoHeight(t);}
                    if (
s<3){
                        if(
t===0){$(o.slides,obj).children(':eq('+(s-1)+')').css({position:'absolute',left:(-w)});}
                        if(
t===1){$(o.slides,obj).children(':eq(0)').css({position:'absolute',left:0});}
                    }
                    $(
o.slides,obj).animate({leftm}, o.slidespeed,function(){
                        if (
t===0) {
                            
s;
                            $(
o.slides,obj).children(':eq('+(s-1)+')').css({position:'absolute',left:(s*w-w)});
                            $(
o.slides,obj).css({left: -(s*w-w)});
                            $(
o.slides,obj).children(':eq(0)').css({left:(s*w)});
                        }
                        if (
t===) $(o.slides,obj).children(':eq(0)').css({position:'absolute',left:0});
                        if (
t===1) $(o.slides,obj).children(':eq('+ (s-1) +')').css({position:'absolute',left:-w});
                        
false;
                    });
                    break;
                case 
'fade':
                    
= [t]*1;
                    
= (-(t*w-w));
                    
current(t);
                    if(
o.autoHeight){autoHeight(t);}
                    $(
o.slides,obj).children().fadeOut(o.fadespeed, function(){
                        $(
o.slides,obj).css({leftm});
                        $(
o.slides,obj).children(':eq('+(s-1)+')').css({left:s*w-w});
                        $(
o.slides,obj).children(':eq(0)').css({left:0});
                        if(
t===s){$(o.slides,obj).children(':eq(0)').css({left:(s*w)});}
                        if(
t===1){$(o.slides,obj).children(':eq('+(s-1)+')').css({ position:'absolute',left:-w});}
                        $(
o.slides,obj).children().fadeIn(o.fadespeed);
                        
false;
                    });
                    break; 
                default:
                    break;
                }                    
            };
        });
    }; 
Quello che vorrei è che ci fosse un effetto slide con easing, anche quando vengono cliccati i singoli link, invece che l'effetto fade.
Ho provato a modificare il JS così:
Codice PHP:
                case 'fade':
                    
= [t]*1;
                    
= (-(t*w-w));
                    
current(t);
                    if(
o.autoHeight){autoHeight(t);}
                    $(
o.slides,obj).animate({leftm}, o.slidespeed,function(){
                        if (
t===0) {
                            
s;
                            $(
o.slides,obj).children(':eq('+(s-1)+')').css({position:'absolute',left:(s*w-w)});
                            $(
o.slides,obj).css({left: -(s*w-w)});
                            $(
o.slides,obj).children(':eq(0)').css({left:(s*w)});
                        }
                        
false;
                    });
                    break; 
e funziona, ma con un problema: cliccando sull'ultimo link non appare nulla.
Dove sbaglio (e come correggere)?