2009-07-02 11 views
9

Come suggerisce il titolo, sto usando le funzioni mostra e nascondi di jQuery per nascondere e mostrare elementi. Tuttavia, non voglio ridimensionare l'altezza dell'elemento, ma solo la larghezza.Modificare la funzione mostra/nascondi solo per la larghezza della scala, non per l'altezza?

Stavo pensando di utilizzare la funzione animate ma non ero sicuro se questo fosse il modo migliore per farlo.

Inoltre, preferirei non dover impostare l'altezza in javascript in quanto potrebbe cambiare nel markup. Idealmente, quello che mi piacerebbe accadesse è quando la funzione viene chiamata per nascondere un elemento che la larghezza dell'oggetto va dalla sua larghezza originale a 0 e il suo alpha scende a 0, quindi il contrario accadrebbe quando glielo dico di mostrare.

risposta

17

si vuole essere utilizzando la funzione animate:

$("div.myElement").animate({width: "toggle"}); 

Lo spettacolo animatore e nascondere i metodi sono per lo più i metodi di vanità che visualizzano una bella animazione. In generale, vuoi personalizzare l'effetto. Puoi anche provare:

$("div.myElement").animate({width: "toggle", opacity: "toggle"}); 

per un effetto piuttosto ampio-e-fade-in. E se vi trovate con queste animazioni più e più volte, è possibile avvolgerli in un nuovo metodo di jQuery:

$.fn.myShow = function(duration) { 
    return this.animate({width: "toggle", opacity: "toggle"}, duration || 1000); 
}); 

$("div.myElement").myShow("slow"); 
+0

ho cambiato "larghezza" a "altezza", al fine di risolvere un problema in cui il codice HTML è apparso a tremare come ha attivato. Questo ha funzionato perfettamente! – Chris

+2

Se sei interessato solo all'altezza (es. Non larghezza come OP vuole), puoi usare [slideUp] (http://api.jquery.com/slideUp/) e [slideDown] (http: //api.jquery .com/slideDown /). –

Problemi correlati