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.
|
|
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() }) }
}
|