Retroceder   Foros del Web > Programación para sitios web > AJAX

Respuesta
 
Herramientas Desplegado
Antiguo 10-feb-2008, 13:17   #1 (permalink)
shakaran tiene algunos puntos positivos de karma
 
Avatar de shakaran
 
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 243
Enviar un mensaje por MSN a shakaran Enviar un mensaje por Skype™ a shakaran
Efecto Mootools tras cargar peticion Ajax

Hola, utilizo mootools mucho en mi web y me gustan mucho sus efectos, pero tengo una gran duda a la hora de crear uno.

Mi problema se encuentra en que quiero hacer una peticion ajax, para cargar un contenido en un div, pero que cuando este div se cargue, pase de tener 0 de altura, a la altura que tenga que tener al ser cargada (no puedo ponerle 300 o 400 o una definida, porque antes y despues tengo mas divs, y se descolocarian haciendo un efecto incomodo).

Por lo tanto, necesito obtener la altura del contenido recibido en la petición ajax, obtener su altura y hacer un fx (y no es un slideOut, porque lo que quiero es meterle una transicion "Fx.Transitions.Bounce.easeOut" para que haga un efecto rebote).

Si alguno conoce la clase de mootools llamada MooTab, habra visto que justo es ese el efecto que hace, que justo al cargar la pestaña (o tab) hace una transición, pero esta clase, juega con trampa, porque obtiene la altura de la pestana cuando se predefine el alto y ancho del espacio que ocuparan las pestañas.

Bueno he hecho un intento que consiste en:

Código:
new Ajax(url,

			{

				update:$('div'),

				onComplete: function()

				{

					alert("completado "+$('crear_reto').getSize().size.y)

                                        //Segunda llamada que se produce, pero esta es cuando el contenido se ha cargado, podria obtener la altura, pero si ya se muestra el contenido no me valdria, tiene que ser obtener la altura, y hacer el efecto mientras se muestra el contenido
				},

				onRequest: function()

				{

					alert("request "+$('crear_reto').getSize().size.y)
                                        //Primera llamada que se carga, pero aun no  tengo el contenido y devuelve 0 de alto

					

				},	

				onSuccess: function()

				{

					alert("onSuccess=exito "+$('div').getSize().size.y)

                                        //Tercera llamada que se carga, ya tendria la altura, pero el onComplete muestra el contenido y quedaria feo hacer el efecto
				},	

				onStateChange: function()

				{

					alert("change "+$('div').getSize().size.y)
                                        // Si cambiar el estado

				},

				onFailure: function()

				{

					alert("fallo "+$('div').getSize().size.y)

                                          //Este no tiene sentido, pero lo pongo por probar
				}

				

			}).request();
Alguien tiene alguna sugerencia de como podria hacer esto?
Gracias
__________________
Blog: shakaran.es
Mi proyecto de rol online: www.apogeus.es
shakaran está desconectado   Responder Citando
Antiguo 10-feb-2008, 16:07   #2 (permalink)
shakaran tiene algunos puntos positivos de karma
 
Avatar de shakaran
 
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 243
Enviar un mensaje por MSN a shakaran Enviar un mensaje por Skype™ a shakaran
Re: Efecto Mootools tras cargar peticion Ajax

He conseguido avanzar en el problema. Ahora ya funciona, pero la altura "parpadea" del total a 0 y luego hace el efecto.

Este el código:
Código:
onSuccess: function()
{
	$('test').setHTML(this.response.text)
	var actualHeight=$('test').getStyle('height').toInt() //PROBLEM: In this point the effect "flicker" of actualHeight to 0 on next line
	$('test').setStyle("height", 0);//Set height to 0
	new Fx.Style('test','height',{wait:false,duration: 3000,transition:Fx.Transitions.Bounce.easeOut}).start(0,actualHeight)
}
Bueno al menos funciona bien, pero si se podría mejorar lo del parpadeo.
__________________
Blog: shakaran.es
Mi proyecto de rol online: www.apogeus.es
shakaran está desconectado   Responder Citando
Respuesta
Calificación: Calificación de Tema: 1 votos, 4,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:09.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93