金诚优选前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

88 lines
1.9 KiB

export default class Animation {
constructor (id,opts = {},name = 'animation'){
this.id = id;
this.opts = opts;
this.page = getCurrentPages()[getCurrentPages().length - 1];
this.setData = this.page.setData.bind(this.page);
this.animate = wx.createAnimation(Object.assign({
duration:350,
timingFunction:'linear',
delay:0,
},opts));
this.name = name
this.page.data[`${id}.${name}`] = {}
}
up(){
this.animate.translate3d(0,'100%',0).step();
this.setData({
[`${this.id}.${this.name}`] : this.animate.export()
})
return new Promise((resolve,reject) => {setTimeout(() => {resolve()},350)})
}
positionInit () {
this.animate.translate3d(0,'-55px',0).step();
this.setData({
[`${this.id}.${this.name}`] : this.animate.export()
})
}
down(){
this.animate.translate3d(0,'-100%',0).step();
this.setData({
[`${this.id}.${this.name}`] : this.animate.export()
})
}
left(){
this.animate.translate3d('-100%',0,0).step();
this.setData({
[`${this.id}.${this.name}`] : this.animate.export()
})
}
Pullleft(){
this.animate.translate3d(0,0,0).step();
this.setData({
[`${this.id}.${this.name}`] : this.animate.export()
})
}
right(){
this.animate.translate3d('100%',0,0).step();
this.setData({
[`${this.id}.${this.name}`] : this.animate.export()
})
return new Promise((resolve,reject) => {setTimeout(() => {resolve()},350)})
}
expandUp(){
this.animate.height(0).step();
this.setData({
[`${this.id}.${this.name}`] : this.animate.export()
})
}
expandDown(){
this.animate.height('100%').step();
this.setData({
[`${this.id}.${this.name}`] : this.animate.export()
})
}
}