39 lines
887 B
JavaScript
39 lines
887 B
JavaScript
|
|
import { systemInfo } from '../common/utils';
|
||
|
|
const useCustomNavbarBehavior = {
|
||
|
|
data() {
|
||
|
|
return {
|
||
|
|
distanceTop: 0,
|
||
|
|
};
|
||
|
|
},
|
||
|
|
props: {
|
||
|
|
usingCustomNavbar: {
|
||
|
|
type: Boolean,
|
||
|
|
default: false,
|
||
|
|
},
|
||
|
|
customNavbarHeight: {
|
||
|
|
type: Number,
|
||
|
|
default: 0,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
created() {
|
||
|
|
if (this.usingCustomNavbar) {
|
||
|
|
this.calculateCustomNavbarDistanceTop();
|
||
|
|
}
|
||
|
|
},
|
||
|
|
methods: {
|
||
|
|
calculateCustomNavbarDistanceTop() {
|
||
|
|
const { statusBarHeight } = systemInfo;
|
||
|
|
let distance = 0;
|
||
|
|
// #ifndef H5
|
||
|
|
// #ifndef APP-PLUS
|
||
|
|
const menuButton = uni.getMenuButtonBoundingClientRect();
|
||
|
|
distance = menuButton.top + menuButton.bottom - statusBarHeight;
|
||
|
|
// #endif
|
||
|
|
// #endif
|
||
|
|
|
||
|
|
this.distanceTop = Math.max(distance, this.customNavbarHeight + statusBarHeight);
|
||
|
|
},
|
||
|
|
},
|
||
|
|
};
|
||
|
|
export default useCustomNavbarBehavior;
|