al posto di
wait: false
prova
link: 'ignore'
al posto di
wait: false
prova
link: 'ignore'
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
thanks dottwatson
se provo var home = new Fx.Slide('home', {duration: 500, link:'ignore'});
non lo riconosce come un comando valido
allora stai usando una versione vecchia di mootools mi sa....
![]()
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
sto utilizzando la 1.2.4 di cui ho creato la versione more inserendo solo FX.slide.
Con il comando da te indicato non mi da nessun errore però i link mi diventano incliccabili.
Mmm sto cominciando in salita
Se applichi un effetto su un oggetto mentre un'altro effetto è ancora in transizione di default mootools aspetta la fine del primo effetto. Nel tuo caso, con un chain di mezzo, scazza tutto. Perché ad esempio lo slide out sta ancora avvenendo (quindi aspetta), mentre l'altro elemento ha già finito la transazione e quindi parte subito. wait:false fa partire gli effetti anche se ce n'è un'altro in corso.
Per quel che riguarda il codice quel che nn mi convince è l'espandibilità, non tanto la funzionalità. Immagina se avrai 10 di quei div che vanno su-e-giù, a quanto codice ti tocca scrivere/modificare.
Edit: ops, questo post era riferito a 3-4 posts fa. sono lento a scrivere :P
Comunque, se hai parecchi div ti conviene usare un Fx.Elements e simulare l'effetto voluto, altrimenti basta che infili un cancel() sul previousDiv (sarebbe meglio su TUTTI gli oggetti Fx) prima di lanciare l'effetto in modo da bloccare le altre azioni.
I DON'T Double Click!
artorious,quindi proponi di fare una cosa del genere?
$('homeLink').addEvent('click', function(e){
e.stop();
previousDiv.cancel()
previousDiv.slideOut().chain(function(){home.slide In()});
previousDiv = home;
});
$('div1Link').addEvent('click', function(e){
e.stop();
previousDiv.cancel()
previousDiv.slideOut().chain(function(){div1.slide In()});
previousDiv = div1;
});
così facendo non rischierei di bloccare l'animazione in corso?
i div sono solo 3 o 4, ma per il momento per semplificare sto provando solo con 2...
bionicoz quindi il problema potrebbe essere il chain, non so che altro provare.
'spetta, allora tu vuoi far finire l'animazione in corso, sebbene l'utente abbia richiesto un'altra funzione? Perché, di solito si blocca quello che si sta facendo e si presenta l'altra animazione (come con gli Fx.Elements). Quello che dici tu si può fare ma si rischia di far eseguire una marea di animazioni di sequenza (cosa non credo molto gradita, ti ricordo che la prima regola quando si mettono delle animazioni in un sito è che siano brevi e no invasive).
I DON'T Double Click!
Buon dì
Per me in realtà andrebbe bene anche bloccare l'animazione in corso, infatti ho provato anche a settare link:'cancel' però continua ad andarmi in tilt (cliccando velocemente tra i vari link), suppongo che blocchi l'animazione prima che venga impostato il nuovo previousDiv o avvenga qualche altro inghippo a causa del chain tra il slideOut e il slideIn.
Sto andando a tentativi ma fino ad ora ho ricavato ben poco, spero in un vostro lampo di genio![]()
ti dirò, io l'ho provato, ma non mi è mai andato in tilt..., forse devi inserire il cancel in entrambi gli oggetti Fx:
div1.cancel();
home.cancel();
in entrambe le funzioni, prima del nuovo effetto.
I DON'T Double Click!