1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| const useCustomNavbarBehavior = Behavior({
| properties: {
| usingCustomNavbar: {
| type: Boolean,
| value: false,
| },
| customNavbarHeight: {
| type: Number,
| value: 0,
| },
| },
| data: {
| distanceTop: 0,
| },
| lifetimes: {
| attached() {
| if (this.properties.usingCustomNavbar) {
| this.calculateCustomNavbarDistanceTop();
| }
| },
| },
| methods: {
| calculateCustomNavbarDistanceTop() {
| const { statusBarHeight } = wx.getSystemInfoSync();
| const menuButton = wx.getMenuButtonBoundingClientRect();
| const distance = menuButton.top + menuButton.bottom - statusBarHeight;
| this.setData({
| distanceTop: Math.max(distance, this.properties.customNavbarHeight + statusBarHeight),
| });
| },
| },
| });
| export default useCustomNavbarBehavior;
|
|