Aquí hay un ejemplo usando el enrutador emberjs http://jsbin.com/agameq/edit. Ahora quiero tener alguna animación de presentación, como fadeIn o fadeOut, cuando la ruta cambió. ¿que debería hacer?¿Puedo dar a la vista una animación de presentación en emberjs
Respuesta
Cada View
en Ember tiene un método denominado didInsertElement
:
llama cuando el elemento de la vista ha sido insertado en el DOM. Reemplace esta función para realizar cualquier configuración que requiera un elemento en el cuerpo del documento.
Todos los puntos de vista de brasa también tienen un $
que es una referencia a jQuery, por lo que puede envolver algún elemento en su opinión con ella y aplicar ningún cambio en ella, tales como:
// this will animate only the tag h2, which in your case is the title of the users view
App.UsersView = Ember.View.extend({
templateName: 'users',
didInsertElement: function() {
this.$('h2').animate({ fontSize: "3em" }, 900);
}
});
O puede llamarlo sin argumentos (como $()
) para devolver la vista actual envuelta por jQuery.
para animar una vista al entrar en esa vista/ruta, hacer esto en su App.UsersView
:
// this will animate the entire view
App.UsersView = Ember.View.extend({
templateName: 'users',
didInsertElement: function() {
this.$().animate({ fontSize: "3em" }, 900);
}
});
(Nota: mi animación es bastante escaso, pero es sólo para mostrar dónde llamar la métodos, hacer una animación real)
Aquí es una versión modificada de your JSBin
Gracias. Muy interesante. No sabía que Ember implementó el elemento didInsertElement inspirado en Cocoa. ¿Tu ejemplo está usando la función jQuery.animate? Significado didInsertElement de Ember y luego pasarlo a jQuery para cosas de UX, ¿verdad? – nembleton
@nembleton Eso es correcto, en ese momento estoy llamando a la función jQuery ['animate'] (http://api.jquery.com/animate/), porque Ember ya lo proporciona a sus vistas, todo lo que necesita tener es la referencia del script a jQuery – MilkyWayJoe
Muchas gracias. Tu contestador resolvió mis grandes problemas. Quiero usar emberjs para hacer alguna aplicación web y el ux es realmente importante para eso. Pero en este momento la animación está usando jQuery ¿la animación puede ser reemplazada por trucos de css3? – aisensiy
Tras la respuesta de @MilkyWayJoe, es probable que desee ocultar la vista antes de inserti ng que, mediante el establecimiento de la propiedad a isVisible
false
:
App.UsersView = Ember.View.extend({
templateName: 'users',
isVisible: false,
didInsertElement: function() {
var self = this;
this.$().fadeIn(700, function(){
self.set('isVisible', true); //inform observers of `isVisible`
});
}
});
O utilice this animation Mixin, lo que le permite animar Vistas cambiando un conjunto de propiedades CSS observados:
App.UsersView = Ember.View.extend(JQ.Animate, {
templateName: 'users',
isVisible: false,
// Observed CSS properties
cssProperties: ['display'],
// Optional animation properties
duration: 700,
easing: 'easeInOutCubic',
didInsertElement: function() {
this.set('display', 'block');
},
afterAnimate: function() {
this.set('isVisible', true);
}
});
Oh, eso es bueno. Leeré el artículo y lo intentaré. ¿Cómo se puede llegar a conocer esta información leyendo el código fuente? – aisensiy
El código fuente encontrado [aquí] (http://cloud.github.com/downloads/emberjs/ember.js/ember-latest.js) (que es el último) tiene todos los comentarios en comparación con la [documentación] (http://emberjs.com/documentation/) que no se ha actualizado por completo (porque la mayoría de los esfuerzos se concentran en el [1.0 hito] (https://github.com/emberjs/ember.js/issues? labels = & milestone = 1 & page = 1 & state = open)). También sugiero a [Google para "Ember Gist"] (https://www.google.ca/#hl=en&q=ember+gist) y obtendrá varios recursos excelentes. – MilkyWayJoe
Hola, ¿cómo puedo acceder a los elementos dom en el controlador ... Por ejemplo, cargo algunos elementos en el controlador y necesito cambiar el tamaño del elemento principal de los elementos. ¿Cómo puedo obtener el dom padre y establecer su ancho en el controlador? – aisensiy
- 1. Creando una animación Pop similar a la presentación de UIAlertView
- 2. Cómo dar animación a la ViewSwitcher
- 3. Cómo mostrar/ocultar una vista en EmberJS
- 4. Agregar animación a una Vista de lista en Android
- 5. vista de emberjs con raphael o d3
- 6. Android: ¿Animación en la vista de galería?
- 7. Animación entre dos estados de una vista, usando animación personalizada
- 8. Usando fundido en animación para una vista
- 9. Filtrado + animación NSTableView basada en la vista
- 10. ordenar una lista en EmberJS y tener que reflejan en la vista
- 11. Modificar una vista de contenedor de animación de iPhone antes de comenzar la animación
- 12. Animación al cambiar la vista de texto
- 13. iOS vista animación 'plegable'
- 14. Cómo puedo agregar una animación a la actividad finish()
- 15. cambiar la vista de dos vista del controlador en una animación de cubo
- 16. ¿Cómo configuro una variable "ENV" en EmberJS?
- 17. Animación de explosión de una vista en android
- 18. Emberjs rootElement
- 19. ¿Cómo eliminar una vista cuando termina la animación?
- 20. ¿Puedo usar JQuery Mobile con EmberJS?
- 21. Android: dar una vista web de esquinas redondeadas?
- 22. Animación en la barra de notificaciones Vista personalizada
- 23. emberjs binding
- 24. Seguimiento de una animación de núcleo Animación
- 25. Después de la animación, la posición de vista se restablece
- 26. ¿Cómo puedo dibujar una vista animada en Android?
- 27. EmberJS anidadas vistas y controladores
- 28. cómo animar una vista con Traducir animación en Android
- 29. ¿Cómo puedo crear una presentación de Apple Keynote desde cero?
- 30. cancelar una presentación en jquery?
He añadido recientemente un [ proyecto en GitHub] (https://github.com/MilkyWayJoe/ember-router-with-webapi) como mi propio proceso de aprendizaje, es posible que desee echar un vistazo (todavía es bastante difícil, pero voy a actualizar a medida que avance) – MilkyWayJoe
@MilkyWayJoe Ok, lo haré ~ gracias ~ – aisensiy