44 lines
		
	
	
		
			984 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			984 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| angular.
 | |
|   module('phonecatApp').
 | |
|   animation('.phone', function phoneAnimationFactory() {
 | |
|     return {
 | |
|       addClass: animateIn,
 | |
|       removeClass: animateOut
 | |
|     };
 | |
| 
 | |
|     function animateIn(element: JQuery, className: string, done: () => void) {
 | |
|       if (className !== 'selected') { return; }
 | |
| 
 | |
|       element.css({
 | |
|         display: 'block',
 | |
|         position: 'absolute',
 | |
|         top: 500,
 | |
|         left: 0
 | |
|       }).animate({
 | |
|         top: 0
 | |
|       }, done);
 | |
| 
 | |
|       return function animateInEnd(wasCanceled: boolean) {
 | |
|         if (wasCanceled) { element.stop(); }
 | |
|       };
 | |
|     }
 | |
| 
 | |
|     function animateOut(element: JQuery, className: string, done: () => void) {
 | |
|       if (className !== 'selected') { return; }
 | |
| 
 | |
|       element.css({
 | |
|         position: 'absolute',
 | |
|         top: 0,
 | |
|         left: 0
 | |
|       }).animate({
 | |
|         top: -500
 | |
|       }, done);
 | |
| 
 | |
|       return function animateOutEnd(wasCanceled: boolean) {
 | |
|         if (wasCanceled) { element.stop(); }
 | |
|       };
 | |
|     }
 | |
|   });
 |