diff --git a/common/nav-calc-utils.js b/common/nav-calc-utils.js index 0b4790b..41e455c 100644 --- a/common/nav-calc-utils.js +++ b/common/nav-calc-utils.js @@ -1,85 +1,84 @@ -function navParams() { - - let params = { - // 是否支持自定义导航栏(小程序 pc版 false) - supportCustomBar: true, - // 胶囊 - menuButton: { - width: 0, - height: 0 - }, - // 导航栏 - // 可自定义,wx小程序会强制更改 - navBar: { - height: 0, - // 导航栏字体大小 wx小程序 ios:13,Android:17 - fontSize: 0, - // 导航栏样式 wx小程序时:ios:center,Android:left - style: '', - // 导航栏可用宽度 wx小程序时 ios,Android:屏幕宽-胶囊 - enableWidth: 0, - // 导航栏不可用宽度 wx小程序时 ios,Android:胶囊+胶囊距离屏幕右侧边界的距离 - disableWidth: 0 - }, - window: { - width: 0, - height: 0 - }, - os: { - osName: '' - }, - // 导航栏+状态栏高度 - navStatusHeight: '0px', - // 状态栏高度 - statusBarHeight: 0, - unit: 'px' - } - - // 同步获取信息 - let info = uni.getSystemInfoSync(); - - // 状态栏高度 - params.statusBarHeight = info.statusBarHeight; - params.window.width = info.screenWidth - params.window.height = info.screenHeight - params.os.osName = info.osName - - // 获取胶囊相关内容 - // #ifdef MP-WEIXIN - let menuButton = uni.getMenuButtonBoundingClientRect(); - params.menuButton.width = menuButton.width; - params.menuButton.height = menuButton.height; - let paddingTop = menuButton.top - params.statusBarHeight; - let paddingBottom = 0; - if (params.os.osName === 'ios') { - paddingBottom = paddingTop * 2; - params.navBar.fontSize = 13; - params.navBar.style = 'center'; - } else if (params.os.osName === 'android') { - paddingBottom = paddingTop; - params.navBar.fontSize = 17; - params.navBar.style = 'left'; - } else if (params.os.osName === 'windows') { - params.supportCustomBar = false; - } else { - // 未测试 - paddingBottom = paddingTop; - params.navBar.fontSize = 17; - params.navBar.style = 'left'; - // macos 未测试 - } - params.navBar.height = params.menuButton.height + paddingTop + paddingBottom; - // 导航栏可用宽度 屏幕左边界到胶囊左边界 - params.navBar.enableWidth = menuButton.left; - params.navBar.disableWidth = params.window.width - params.navBar.enableWidth; - // #endif - - params.navStatusHeight = params.statusBarHeight + params.navBar.height - - console.log(params); - return params -} - -export { - navParams +function navParams() { + + let params = { + // 是否支持自定义导航栏(小程序 pc版 false) + supportCustomBar: true, + // 胶囊 + menuButton: { + width: 0, + height: 0 + }, + // 导航栏 + // 可自定义,wx小程序会强制更改 + navBar: { + height: 0, + // 导航栏字体大小 wx小程序 ios:13,Android:17 + fontSize: 0, + // 导航栏样式 wx小程序时:ios:center,Android:left + style: '', + // 导航栏可用宽度 wx小程序时 ios,Android:屏幕宽-胶囊 + enableWidth: 0, + // 导航栏不可用宽度 wx小程序时 ios,Android:胶囊+胶囊距离屏幕右侧边界的距离 + disableWidth: 0 + }, + window: { + width: 0, + height: 0 + }, + os: { + osName: '' + }, + // 导航栏+状态栏高度 + navStatusHeight: '0px', + // 状态栏高度 + statusBarHeight: 0, + unit: 'px' + } + + // 同步获取信息 + let info = uni.getSystemInfoSync(); + + // 状态栏高度 + params.statusBarHeight = info.statusBarHeight; + params.window.width = info.screenWidth + params.window.height = info.screenHeight + params.os.osName = info.osName + + // 获取胶囊相关内容 + // #ifdef MP-WEIXIN + let menuButton = uni.getMenuButtonBoundingClientRect(); + params.menuButton.width = menuButton.width; + params.menuButton.height = menuButton.height; + let paddingTop = menuButton.top - params.statusBarHeight; + let paddingBottom = 0; + if (params.os.osName === 'ios') { + paddingBottom = paddingTop * 2; + params.navBar.fontSize = 13; + params.navBar.style = 'center'; + } else if (params.os.osName === 'android') { + paddingBottom = paddingTop; + params.navBar.fontSize = 17; + params.navBar.style = 'left'; + } else if (params.os.osName === 'windows' || params.os.osName === 'mac') { + params.supportCustomBar = false; + } else { + // 未知系统按照Android处理 + paddingBottom = paddingTop; + params.navBar.fontSize = 17; + params.navBar.style = 'left'; + } + params.navBar.height = params.menuButton.height + paddingTop + paddingBottom; + // 导航栏可用宽度 屏幕左边界到胶囊左边界 + params.navBar.enableWidth = menuButton.left; + params.navBar.disableWidth = params.window.width - params.navBar.enableWidth; + // #endif + + params.navStatusHeight = params.statusBarHeight + params.navBar.height + + console.log(params); + return params +} + +export { + navParams } \ No newline at end of file