Efectos con Mootools: Fx.Elements
18 de July, 2007
¿Qué es Fx.Elements?
Fx.Elements nos permite aplicar varios efectos diferentes(o no) a una colección de elementos.
Creando una instancia de Fx.Elements
1 | var miEfectos = new Fx.Elements(elementos, {opciones}); |
Ahora misEfectos es una instancia de Fx.Elements que efectuara cambios en los elementos elementos.
Métodos
La mayoria de los métodos y todas las opciones y eventos funcionan de la misma manera que en Fx.Style y Fx.Styles. Entre los métodos el que varia con respecto a las otras clases de efectos es start.
set
No logré hacerlo funcionar y no aparece en la documentación ninguna mención.
start
Esta vez, start nos permite indicar cuales de los elementos de nuestra colección serán los que tengan efectos como así también cuales son las propiedades que se modificaran acompañadas por sus valores.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //Seleccionamos todos los elementos con clase "prueba" que están //dentro de un elemento con id "prueba-1" var misEfectos = new Fx.Elements($$('#prueba-1 .prueba')); misEfectos.start( { //elemento 0, el primero de nuestro arreglo de elementos '0': { //Las propiedades css se colocan de igual manera que en Fx.Styles 'opacity': [0,1], 'width': [80, 300] }, //elemento 2, el tercero de nuestro arreglo de elementos '2': { 'opacity': [0,1], 'width': [80, 300] } }); |
Como se puede ver en el código, podemos colocar manualmente las propiedades que se modifican de cada uno de los elementos o solo de aquellos que queremos. En el ejemplo, el primer y el tercer elemento de nuestra colección son los que se modifican, quedando el segundo sin cambios.
También se puede automatizar un poco el asunto con ayuda de Array.each de la siguiente manera:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var elementos = $$('#prueba-2 .prueba'); var misEfectos = new Fx.Elements(elementos); var efectos = {}; elementos.each(function(el, i) { efectos[i] = { 'opacity': [0,1], 'width': [80, 300] }; }); misEfectos.start(efectos); }); |
De esta manera aplicamos cambios a todos los elementos de nuestra colección. Obviamente también podríamos combinar esto con cualquier otra cosa que nos permita aplicar efectos diferentes a cada elemento.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var elementos = $$('#prueba-3 .prueba'); var misEfectos = new Fx.Elements(elementos); var efectos = {}; elementos.each(function(el, i) { efectos[i] = { 'width': [80, 80 + (115 * (i + 1))], 'opacity': [0.5, 1], 'background-color': ['#B4C24B', '#FF0000'] }; }); misEfectos.start(efectos); |
stop
Funciona igual que en Fx.Style.
Opciones
Las opciones son las mismas que las que se usan con Fx.Style.
Eventos
Los eventos actúan de la misma manera que en Fx.Style.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | var elementos = $$('#prueba-4 .prueba'); var misEfectos = new Fx.Elements(elementos4, { //Las opciones y eventos funcionan de igual forma que en //Fx.Style y Fx.Styles duration: 2000, onComplete: function() { alert('Completado!'); } }); var efectos = {}; elementos.each(function(el, i) { efectos[i] = { 'width': [80, 80 + (115 * (i + 1))], 'opacity': [0.5, 1], 'background-color': ['#B4C24B', '#FF0000'] }; }); misEfectos.start(efectos); |
Extras
Popularity: 4% [?]
Otros artículos
4 comentarios en “Efectos con Mootools: Fx.Elements”
Deja tu comentario
El blog funciona con Wordpress y Simpla theme

July 19, 2007 a las 12:03 pm
Hola,
Si estás interesado, tengo un trabajo en mootools. Puedes ponerte en contacto conmigo en mi dirección de email.
Saludos.
December 19, 2007 a las 7:36 pm
El enlace para descargar los ejemplos apunta a un zip que tiene fx.slide, no fx.elements.
December 20, 2007 a las 12:03 pm
Corregido, gracias Astiam
April 1, 2009 a las 4:53 am
Acabo de descubrir este sitio y es muy interesante. Te felicito por el trabajo.
La web está en construcción. Mi idea es hacer una galería de fotos con mootols.
Un saludo