|
|
|
@ -0,0 +1,66 @@ |
|
|
|
const STORAGE_KEY = 'PLUG-ADD-MYAPP-KEY' |
|
|
|
|
|
|
|
Component({ |
|
|
|
properties: { |
|
|
|
name: { |
|
|
|
type: String, |
|
|
|
value: '测试' |
|
|
|
}, |
|
|
|
duration: { |
|
|
|
type: Number, |
|
|
|
value: 5 |
|
|
|
}, |
|
|
|
delay: { |
|
|
|
type: Number, |
|
|
|
value: 2 |
|
|
|
}, |
|
|
|
logo: { |
|
|
|
type: String, |
|
|
|
value: '/assets/image/add-tips.png' |
|
|
|
}, |
|
|
|
custom: { |
|
|
|
type: Boolean, |
|
|
|
value: false |
|
|
|
} |
|
|
|
}, |
|
|
|
lifetimes: { |
|
|
|
attached: function() { |
|
|
|
if (wx.getStorageSync(STORAGE_KEY)) return; |
|
|
|
let rect = wx.getMenuButtonBoundingClientRect ? wx.getMenuButtonBoundingClientRect() : null |
|
|
|
let {screenWidth} = wx.getSystemInfoSync() |
|
|
|
this.setData({ |
|
|
|
navbarHeight: rect.bottom, |
|
|
|
arrowR: screenWidth - rect.right + rect.width * 3 / 4 - 5, |
|
|
|
bodyR: screenWidth - rect.right |
|
|
|
}) |
|
|
|
this.startTimer = setTimeout(() => { |
|
|
|
this.setData({ SHOW_TOP: true }) |
|
|
|
}, 500) |
|
|
|
this.duraTimer = setTimeout(() => { |
|
|
|
this.hidden(); |
|
|
|
}, (this.data.duration + this.data.delay) * 1000) |
|
|
|
}, |
|
|
|
detached: function() { |
|
|
|
if (this.startTimer) clearTimeout(this.startTimer) |
|
|
|
if (this.duraTimer) clearTimeout(this.duraTimer) |
|
|
|
}, |
|
|
|
}, |
|
|
|
data: { |
|
|
|
SHOW_TOP: false |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
hidden: function() { |
|
|
|
// wx.setStorageSync(STORAGE_KEY, true)
|
|
|
|
this.setData({ SHOW_TOP: false }) |
|
|
|
// this.shrink()
|
|
|
|
}, |
|
|
|
shrink:function() { |
|
|
|
this.animate('#add-tips', [ |
|
|
|
{scale: [1, 1]}, |
|
|
|
{scale: [0, 0], ease:'ease', transformOrigin: `calc(600rpx - ${this.data.arrowR}px) 1%`} |
|
|
|
], 500, function () { |
|
|
|
this.setData({ SHOW_TOP: false }) |
|
|
|
}.bind(this)) |
|
|
|
} |
|
|
|
} |
|
|
|
}) |