2010-10-17 9 views
24

E 'possibile specificare le opzioni per mostrare e nascondere le opzioni di una finestra di dialogo nell'interfaccia utente jQuery.Interfaccia utente jQuery: finestra di dialogo mostra/nascondi effetti con opzioni

Per esempio, invece di:

$('#dialog').dialog({ 
    show: 'fade' 
}); 

Qualcosa di simile:

$('#dialog').dialog({ 
    show: {effect: 'fade', speed: 1000} 
}); 

(. Il codice di cui sopra non, ovviamente, il lavoro)

Quello che sto davvero cercando usare è il metodo "completo" all'interno dell'effetto, o una funzione di callback, così posso selezionare del testo dopo che l'effetto è stato eseguito.

Se qualcuno lo sa, grazie.

risposta

26

È possibile utilizzare questo:

$("#dialog").dialog({ 
     autoOpen: false, 
     hide: 'fold', 
     show: 'blind' 
}); 

E impostare due diversi effetti per nascondere e spettacolo.

Non è possibile utilizzare il metodo "completo". Almeno non con la versione attuale. Tale caratteristica è planned for release 1.9

Speranza che aiuta

+0

Lo fa in realtà aiuto. Grazie. – eje211

46

Non so come specificare tutte le opzioni, ma sono riuscito a specificare la velocità, che è l'opzione che avete nel vostro esempio. L'ho fatto come segue:

$('#dialog').dialog({ 
show: {effect: 'fade', duration: 250} 
hide: {effect: 'fade', duration: 5000} 
}); 

durata è il numero di millisecondi che l'animazione durerà. Ho trovato questo passando attraverso il javascript con firebug.

+3

Bella scoperta! Ti ho dato un voto per passare attraverso jQuery! – BenSwayne

2

Per visualizzare le opzioni di ciascun effetto, andare su http://docs.jquery.com/UI/Effects e fare clic sull'effetto desiderato ora le opzioni specifiche. Per esempio http://docs.jquery.com/UI/Effects/Bounce

Oh e tra l'altro l'effetto de Fade non ha argomenti specifici. Se si utilizza l'effetto di rimbalzo, ecco un esempio di codice:

$('#dialog').dialog({ 
show: {effect: 'bounce', duration: 350, /* SPECIF ARGUMENT */ times: 3} 
}); 
-1

Prova questa:

snippet.dialog({ 
open: function(event, ui) { 
    snippet.hide(); 
    snippet.fadeIn(); 
}}); 
0

vorrei aggiungere che è possibile specificare la durata effetti globali aggiungendo il seguente nel documento.

$.fx.speeds._default = duration; 

durata può essere un'opzione ('lento', 'veloce', ecc) o un numero in millisecondi

+1

Ci penserei due volte prima di modificare questa proprietà (internal, note the leading underscore), perché interesserà tutti gli script jQuery-dipendenti sulla pagina, non solo i tuoi. –

+0

Hai ragione, funziona solo per me perché sto usando pochissimi effetti. Ad esempio, se qualcuno utilizza le schede ui, la transizione sarebbe molto lenta con una durata> 1000ms –

Problemi correlati