2009-07-02 11 views
9

Como el título lo indica, estoy usando las funciones show y hide de jQuery para ocultar y mostrar elementos. Sin embargo, no quiero escalar en la altura del elemento, solo el ancho.¿Modificar la función mostrar/ocultar para escalar solo el ancho, no el alto?

Estaba pensando en utilizar la función animada, pero no estaba seguro de si era la mejor manera de hacerlo.

Además, preferiría no tener que establecer la altura en el javascript, ya que podría cambiar en el marcado.

Idealmente, lo que me gustaría que ocurra es que cuando se llama a la función para ocultar un elemento, el ancho del objeto va desde su ancho original a 0 y su alfa cae a 0, entonces ocurriría lo contrario cuando le digo que se muestre.

Respuesta

17

¿Quieres ser el uso de la función animado:

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

El espectáculo que anima y ocultar los métodos son en su mayoría los métodos de tocador que muestran una animación bastante. En general, querrá personalizar el efecto. También puede probar:

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

para un bonito efecto de ensanchar y desvanecer. Y si usted se encuentra el uso de estas animaciones una y otra vez, se puede envolver en un nuevo método de jQuery:

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

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

me cambió "ancho" a "altura" con el fin de resolver un problema donde el HTML parecía temblar cuando se alteró. ¡Esto funcionó perfectamente! – Chris

+2

Si solo le interesa la altura (p. Ej., No el ancho que desea OP), puede usar [slideUp] (http://api.jquery.com/slideUp/) y [slideDown] (http: //api.jquery .com/slideDown /). –

Cuestiones relacionadas