2010-10-17 8 views
24

Czy jest możliwe określenie opcji wyświetlania i ukrywania opcji okna dialogowego w interfejsie użytkownika jQuery.jQuery UI: dialog pokaż/ukryj efekty z opcjami

Na przykład zamiast:

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

Coś jak:

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

(. Powyższy kod nie, oczywiście, praca)

Co ja naprawdę stara do użycia jest "kompletna" metoda wewnątrz efektu lub funkcja wywołania zwrotnego, dzięki czemu mogę wybrać tekst po wykonaniu efektu.

Jeśli ktoś wie, dzięki.

Odpowiedz

26

Można to wykorzystać:

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

i ustawić dwie różne efekty do ukrycia i pokazać.

Nie można użyć metody "kompletnej". Przynajmniej nie w rzeczywistym wydaniu. Że funkcja jest planned for release 1.9

nadzieję, że pomoże

+0

To rzeczywiście nie pomaga. Dzięki. – eje211

46

nie wiem jak określić wszystkie opcje, ale udało się określić prędkość, która jest opcja masz na swoim przykładzie. Zrobiłem to w następujący sposób:

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

czas trwania to liczba milisekund, przez jaką animacja będzie trwać. Znalazłem to, przechodząc przez javascript z firebugiem.

+3

Nice find! Oddałem głos na przejście przez jQuery! – BenSwayne

2

Aby zobaczyć opcje każdego efektu, można przejść do opcji http://docs.jquery.com/UI/Effects i kliknąć opcję Efekty, które chcesz teraz, w zależności od opcji. Na przykład http://docs.jquery.com/UI/Effects/Bounce

Aha, a przy okazji de Fade Effect nie ma żadnych konkretnych argumentów. Jeśli używasz Bounce Effect oto przykładowy kod:

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

Spróbuj tego:

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

Chciałbym dodać, że można określić czas trwania efektów globalnego poprzez dodanie poniższych informacji w dokumencie.

$.fx.speeds._default = duration; 

trwania może być opcja („powolny”, „szybki”, etc) lub numer w milisekundach

+1

Zastanowiłbym się dwa razy przed modyfikacją tej właściwości (wewnętrznej, uwaga do wiodącego podkreślenia), ponieważ wpłynie to na wszystkie skrypty zależne od jQuery na stronie, a nie tylko twoje. –

+0

Masz rację, to działa tylko dla mnie, ponieważ używam bardzo niewielu efektów. Jeśli ktoś używa na przykład ui-tabs, przejście będzie bardzo powolne z czasem trwania> 1000ms –