uniapp獲取狀態欄高度,膠囊按鈕的高度,底部安全區域的高度,自定義導航欄

相關API

uni.getSystemInfoSync()
uni.getMenuButtonBoundingClientRect()

創建一個utils文件夾,該文件下封裝一個systemInfo.js
/*** 系統信息工具類* 封裝獲取系統狀態欄、導航欄和安全區域等相關信息的方法*/// 獲取系統信息并緩存
const systemInfo = uni.getSystemInfoSync();
//判斷設備,H5沒有膠囊按鈕
// #ifndef H5
const menuButtonInfo = uni.getMenuButtonBoundingClientRect();
// #endif// 默認值常量
const DEFAULT_STATUS_BAR_HEIGHT = 10;
const DEFAULT_BAR_HEIGHT = 44;
const DEFAULT_SAFE_AREA_INSETS = { bottom: 10, top: 0 };/*** 獲取狀態欄高度* @returns {string|number} 狀態欄高度,默認返回10px*/
export const getStatusBarHeight = () => {return systemInfo.statusBarHeight || DEFAULT_STATUS_BAR_HEIGHT;
};/*** 獲取導航欄總高度(包括狀態欄和標題欄)* @returns {number} 導航欄總高度,默認返回44*/
export const getNavigationBarHeight = () => {try {const statusBarHeight = Number(systemInfo.statusBarHeight) || 0;return (menuButtonInfo.top - statusBarHeight) * 2 + menuButtonInfo.height;} catch (error) {return DEFAULT_BAR_HEIGHT;}
};/*** 獲取菜單按鈕上邊距* @returns {number} 菜單按鈕上邊距*/
export const getMenuButtonTop = () => {return menuButtonInfo.top;
};/*** 獲取安全區域信息* @returns {Object} 包含bottom和top屬性的安全區域對象*/
export const getSafeAreaInsets = () => {return {bottom: systemInfo.safeAreaInsets?.bottom || DEFAULT_SAFE_AREA_INSETS.bottom,top: systemInfo.safeAreaInsets?.top || DEFAULT_SAFE_AREA_INSETS.top};
};export default {getStatusBarHeight,getNavigationBarHeight,getMenuButtonTop,getSafeAreaInsets
};

在這里插入圖片描述

封裝一個nav-header.vue組件,在當前組件導入使用封裝的,固定在頂部
<template><view class="nav-layout"><!-- 狀態欄高度 --><view class="status-bar" :style="{ height: `${getStatusBarHeight()}px` }"></view><!-- 自定義導航欄 --><view class="search-bar" :style="{ height: `${getNavigationBarHeight()}px` }"><text class="recommend">推薦</text><view class="search-container" @click="onSearchClick"><uni-icons class="search-icon" type="search" size="22" color="#333" /><text class="search-placeholder">搜索</text></view></view></view><!-- 占位 --><view class="layout-fill" :style="{ height: `${getStatusBarHeight() + getNavigationBarHeight()}px` }"></view>
</template><script setup>
import {getStatusBarHeight,getNavigationBarHeight} from '@/utils/systemInfo.js'
</script><style lang="scss" scoped>
.nav-layout {position: fixed;top: 0;left: 0;z-index: 10;width: 100%;background: linear-gradient(to bottom, transparent, #fff 400rpx),linear-gradient(to right, #beecd8 20%, #f4e2d8);.status-bar {background-color: transparent;}.search-bar {display: flex;align-items: center;padding: 0 30rpx;.recommend {font-size: 40rpx;font-weight: bold;padding-right: 30rpx;color: #333;}}.search-container {display: flex;align-items: center;border-radius: 40rpx;border: 2px solid #fff;width: 300rpx;padding: 0 20rpx;box-sizing: border-box;background: rgba(255, 255, 255, 0.3);transition: all 0.3s ease;&:hover {background: rgba(255, 255, 255, 0.5);transform: scale(1.02);}.search-icon {padding-right: 6rpx;}.search-placeholder {color: #666;font-size: 28rpx;}}
}.layout-fill {width: 100%;
}
</style>
需要使用的頁面導入nav-header.vue組件,自定義導航欄首先需要在page.json文件對應的路徑去配置"navigationStyle": "custom"

在這里插入圖片描述

展示效果圖

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/88677.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/88677.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/88677.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jQuery 文本屬性值

一、前言在網頁開發中&#xff0c;我們經常需要對頁面上的文本內容進行操作&#xff0c;例如動態修改段落文字、讀取用戶輸入框的內容、更新按鈕文本等。jQuery 提供了簡潔而強大的方法來處理這些常見的文本操作需求。本文將帶你全面了解 jQuery 中用于操作文本內容的三個核心方…

JAVA并發——為什么Java中的ThreadLocal對key的引用為弱引用

1、ThreadLocal 的用途 給每個線程提供自己獨立的變量副本&#xff0c;實現線程間隔離。 常用于&#xff1a; 數據庫連接、Session 緩存、用戶上下文&#xff08;如 userId&#xff09;線程池中的線程復用時避免共享污染&#xff1b;實現線程封閉的設計模式 2、內存泄漏 使用弱…

【C++】多線程同步三劍客介紹

目錄 條件變量 頭文件 主要操作函數 1、等待操作 2、喚醒操作 使用示例 信號量 頭文件 主要操作函數 1、信號量初始化 2、等待操作&#xff08;P操作&#xff09; 3、信號操作&#xff08;V操作&#xff09; 4、獲取信號量值 5、銷毀信號量 使用示例 互斥鎖 …

《Java Web程序設計》實驗報告八 JSP+Servlet+JDBC+MySQL實現課程管理

目 錄 一、實驗目的 二、實驗環境 三、實驗步驟和內容 1、小組成員分工&#xff08;共計4人&#xff09; 2、實驗方案 3、實驗結果與分析 4、項目任務評價 四、遇到的問題和解決方法 五、實驗總結 一、實驗目的 1、掌握mysql的安裝、數據庫表單創建 2、掌握JDBC的鏈接…

基于數據挖掘的課程推薦系統研究

摘要本研究設計并開發了一套基于先進數據挖掘技術的智能化課程推薦系統。該系統創新性地采用了協同過濾算法與內容推薦算法相結合的混合推薦策略&#xff0c;通過深度分析學生在學習平臺上的歷史行為數據&#xff08;包括選課記錄、學習時長、測試成績等&#xff09;以及課程的…

【SCI 4區推薦】《Journal of Visual Communication and Image Representation》

期刊簡介&#xff1a;《視覺傳達與圖像表示雜志》&#xff08;Journal of Visual Communication and Image Representation&#xff09;致力于發表視覺傳達與圖像表示領域的最前沿研究&#xff0c;特別強調多學科交叉領域中的新技術和理論應用。這本期刊涵蓋的研究范圍廣泛&…

20250711_Sudo 靶機復盤

target:192.168.43.20 外部打點 &#xff08;文件上傳&#xff09; nmap掃一下&#xff0c;80,22 開放 掃目錄&#xff0c;發現 README.md [17:04:30] 200 - 664B - /Dockerfile [17:04:38] 200 - 34KB - /LICENSE …

STEP 7-Micro/WIN SMART 編程軟件:從入門到精通的使用指南

STEP 7-Micro/WIN SMART 編程軟件&#xff1a;從入門到精通的使用指南 在工業自動化控制領域&#xff0c;編程軟件是連接工程師與 PLC 的橋梁&#xff0c;而 STEP 7-Micro/WIN SMART 作為 S7-200 SMART PLC 的專用編程工具&#xff0c;以其友好的界面和高效的編程能力備受青睞。…

模型訓練與部署注意事項篇---resize

圖像大小的影響在 YOLOv 系列模型的訓練和推理部署過程中&#xff0c;圖像大小的選擇是影響模型性能&#xff08;精度、速度、泛化能力&#xff09;的關鍵因素之一。兩者的關系既相互關聯&#xff0c;又存在一定的靈活性&#xff0c;具體可從以下幾個方面詳細分析&#xff1a;一…

【Python】venv:配置獨立鏡像源

為某個特定的 venv 虛擬環境設置 pip 鏡像源&#xff0c;使得該環境下的 pip 安裝始終使用自定義鏡像源&#xff0c;不影響系統 pip&#xff0c;也不依賴用戶級配置文件。環境準備 1. 創建虛擬環境 python -m venv venv2. 激活虛擬環境Windows: .\venv\Scripts\activateLinux/m…

日本語言學校:簽證制度類 Prompt 的結構整理路徑與策略

日本語言學校&#xff1a;簽證制度類 Prompt 的結構整理路徑與策略 我們在構建語言留學語義系統的過程中&#xff0c;嘗試以“簽證風險”為例&#xff0c;探索如何讓結構信息被更好地保留下來。本文不介紹 Prompt 本身&#xff0c;也不夸大其作用&#xff0c;而是希望借此與更…

RFCOMM協議詳解:串口仿真與TCP/IP協議棧移植技術——面試高頻考點與真題解析

一、RFCOMM 協議核心考點與高頻面試問題1.1 協議基礎與核心功能考點解析&#xff1a;RFCOMM&#xff08;Radio Frequency Communication&#xff09;是藍牙協議棧中實現串口仿真的核心協議&#xff0c;基于 L2CAP 協議提供類似 RS-232 的可靠數據流傳輸。其核心功能包括&#x…

【編程實踐】利用open3d生成物體的最長邊方向并可視化

1 利用3d軟件生成一個長方體 邊長隨意&#xff0c;長度隨意 2 導出為模型文件并采樣為點云數據 從mesh表面進行采樣&#xff0c;點數根據自己需求進行設置&#xff0c;此處設置為100000。采樣結果&#xff1a;3 識別OBB外接框并可視化長邊方向import numpy as np import open3d…

1. 好的設計原則

目錄一、應該具備的性質二、面向對象設計原則三、詳解3.1 開閉原則3.2 單一職責原則3.3 里氏替換原則3.4 依賴倒置原則3.5 接口隔離原則3.6 合成復用原則3.7 迪米特原則一、應該具備的性質 可擴展性靈活性可插入性 二、面向對象設計原則 以下設計原則的重要性從高到低排列 …

深度學習圖像分類數據集—貓七種表情識別分類

該數據集為圖像分類數據集&#xff0c;適用于ResNet、VGG等卷積神經網絡&#xff0c;SENet、CBAM等注意力機制相關算法&#xff0c;Vision Transformer等Transformer相關算法。 數據集信息介紹&#xff1a;貓七種表情識別分類&#xff1a;[Angry, Disgusted, Happy, Normal, Sa…

002_Claude模型與定價

Claude模型與定價 目錄 Claude 4 模型系列模型功能對比定價策略計費說明企業定價使用建議 Claude 4 模型系列 Anthropic 推出了最新的 Claude 4 系列模型&#xff0c;提供不同性能等級以滿足各種需求&#xff1a; Claude Opus 4 定位&#xff1a;最強大、最智能的模型特點…

【牛客刷題】游游的字母串

文章目錄 一、題目介紹1.1 題目描述1.2 輸入描述:1.3 輸出描述:1.4 示例1二、解題二、解題思路2.1 核心問題2.2 關鍵策略三、算法分析3.1 為什么正確?3.2 復雜度分析四、模擬演練五、完整代碼一、題目介紹 題目:游游的字母串 1.1 題目描述 對于一個小寫字母而言,游游可以通…

docker容器高級管理-dockerfile創建鏡像

目錄一.構建LNMP架構1.構建nginx容器①拉取centos鏡像&#xff08;對鏡像做基礎架構&#xff09;②創建dockerfile工作目錄&#xff08;可以是一個服務的項目&#xff09;③創建dockerfile④創建啟動腳本2.構建mysql數據庫①創建mysql項目②配置dockersfile文件④創建鏡像文件3…

北京-4年功能測試2年空窗-報培訓班學測開-第四十九天

今天自習&#xff0c;在自習室嚶…今天效率不高&#xff0c;導致焦慮。不&#xff0c;或者該說&#xff0c;因為焦慮導致效率不高&#xff1f;沒有達到自己預期&#xff0c;對自己也不滿意臨近結課&#xff0c;突然有些迷茫&#xff0c;我知道我要做的還有很多&#xff0c;要學…

css選擇器的優先級以及用法

在 CSS 中&#xff0c;當多個選擇器同時作用于一個元素&#xff0c;并且為該元素的同一屬性設置了不同的值時&#xff0c;就需要依據選擇器的優先級來確定最終應用哪個樣式。本文詳細介紹 CSS 選擇器優先級的相關內容。 本文目錄一、單個選擇器的優先級1. 內聯樣式2. ID 選擇器…