mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-19 03:32:21 +08:00
152 lines
3.3 KiB
JavaScript
152 lines
3.3 KiB
JavaScript
import {bootstrap} from 'angular2/angular2'
|
|
import {Component, Directive} from 'angular2/src/core/annotations_impl/annotations';
|
|
import {View} from 'angular2/src/core/annotations_impl/view';
|
|
|
|
import {Animation} from 'ionic/ionic';
|
|
|
|
let opacity = 0.2;
|
|
let rotateZ = '180deg';
|
|
let translateX = '100px';
|
|
let scale = 0.6;
|
|
|
|
@Component({ selector: 'ion-app' })
|
|
@View({
|
|
templateUrl: 'main.html'
|
|
})
|
|
class IonicApp {
|
|
|
|
fadeOut() {
|
|
console.debug('fadeOut');
|
|
|
|
var animation = new Animation();
|
|
|
|
animation.duration(1000);
|
|
animation.easing('linear');
|
|
|
|
var row1 = new Animation();
|
|
row1.elements( document.querySelectorAll('.square') )
|
|
.to('opacity', opacity)
|
|
.to('translateX', translateX)
|
|
.to('translateY', translateX)
|
|
.to('rotateZ', rotateZ)
|
|
.to('scale', scale);
|
|
|
|
animation.addChild(row1);
|
|
|
|
|
|
var row2 = new Animation();
|
|
row2.elements( document.querySelectorAll('.square2') );
|
|
|
|
row2.to('opacity', opacity);
|
|
row2.to('translateX', '-100px');
|
|
row2.to('translateY', '-100px');
|
|
row2.to('rotateZ', '-180deg');
|
|
row2.to('scale', 0.4);
|
|
|
|
animation.addChild(row2);
|
|
|
|
let q = animation.start();
|
|
|
|
q.then(()=> {
|
|
console.log('fade out complete')
|
|
});
|
|
}
|
|
|
|
|
|
fadeIn() {
|
|
console.debug('fadeIn');
|
|
|
|
var animation = new Animation();
|
|
|
|
animation.duration(1000);
|
|
animation.easing('linear');
|
|
|
|
|
|
var row1 = new Animation();
|
|
row1.elements( document.querySelectorAll('.square') );
|
|
|
|
row1.to('opacity', 1);
|
|
row1.to('translateX', 0);
|
|
row1.to('translateY', 0);
|
|
row1.to('rotateZ', 0);
|
|
row1.to('scale', 1);
|
|
|
|
animation.addChild(row1);
|
|
|
|
|
|
var row2 = new Animation();
|
|
row2.elements( document.querySelectorAll('.square2') );
|
|
|
|
row2.to('opacity', 1);
|
|
row2.to('translateX', 0);
|
|
row2.to('translateY', 0);
|
|
row2.to('rotateZ', 0);
|
|
row2.to('scale', 1);
|
|
|
|
animation.addChild(row2);
|
|
|
|
let q = animation.start();
|
|
|
|
q.then(()=> {
|
|
console.log('fade in complete')
|
|
});
|
|
}
|
|
|
|
stop() {
|
|
this.animation.stop();
|
|
}
|
|
|
|
percent(ev) {
|
|
let percentComplete = parseFloat(ev.srcElement.value) / 100;
|
|
|
|
if (!this.percentAnimation) {
|
|
this.percentAnimation = new Animation();
|
|
// this.percentAnimation.name = 'top';
|
|
|
|
var row1 = new Animation();
|
|
row1.elements( document.querySelectorAll('.square') )
|
|
.to('opacity', opacity)
|
|
.to('translateX', translateX)
|
|
.to('translateY', translateX)
|
|
.to('rotateZ', rotateZ)
|
|
.to('scale', scale);
|
|
|
|
this.percentAnimation.addChild(row1);
|
|
|
|
var row2 = new Animation();
|
|
row2.elements( document.querySelectorAll('.square2') );
|
|
|
|
row2.to('opacity', opacity);
|
|
row2.to('translateX', '-100px');
|
|
row2.to('translateY', '-100px');
|
|
row2.to('rotateZ', '-180deg');
|
|
row2.to('scale', 0.4);
|
|
|
|
this.percentAnimation.addChild(row2);
|
|
|
|
this.percentAnimation.ready();
|
|
}
|
|
|
|
this.percentAnimation.percent(percentComplete);
|
|
}
|
|
|
|
velocityStart() {
|
|
var elements = document.querySelectorAll('.square');
|
|
Velocity(elements, {
|
|
opacity: 0,
|
|
translateX: '100px',
|
|
rotateZ: '90deg'
|
|
}, 2000);
|
|
|
|
// setTimeout(function() {
|
|
// Velocity(elements, "stop");
|
|
// }, 1000);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
export function main() {
|
|
bootstrap(IonicApp);
|
|
}
|