搜尋
首頁微信小程式小程式開發Uniapp開發中自訂彈窗如何覆寫原生導覽列和狀態列

在使用Uni框架開發APP、小程式中,由於原生導覽列和狀態列是屬於原生框架渲染,其層級會高於所有內容區域,包括DCloud提供的自訂彈窗元件也無法實現覆蓋原生導覽列的目的,翻閱技術資料,有不少開發者說可以使用nvue的方式來實現這個效果,但是感覺實現過程過於繁雜,而且兼容性並不是很好。

Uniapp開發中自訂彈窗如何覆寫原生導覽列和狀態列

那有什麼簡單的方式可以實現覆蓋原生導覽列的效果呢?答案是有的,要不然我也不會寫這篇文章來浪費大家的寶貴時間了,對吧。著急的讀者可以先看圖,我給的圖已經實現了這個效果。

首先我們要知道,透過CSS方式設定層級(z-index)的值是無法達到目的的,即使是設定為1000000或更大,也沒有作用(發佈為H5端的除外)。這個是由於Uni框架的頁面渲染邏輯所形成的。

// 设置多大都无效
.popup { z-index: 1000000 }

有些技術可能會這樣做:把導覽列和狀態列都改為自訂,不使用原生的方式,這樣不就解決了層級問題了嗎,是的沒錯,這樣是可以解決問題了,但是我們在開發的時候都知道,原生導覽列和狀態列不管是在渲染效果和各終端相容性上都是非原生無法比及的。另外使用非原生的方式也不在本文討論的範疇。

我這裡要跟大家介紹一個方法,而且還非常簡單,既然我們無法透過彈窗元件來覆蓋原生導覽欄,那麼可以把彈窗做成一個頁面,另外再把頁面渲染成彈窗效果,我們都知道,跳到新的頁面是可以覆蓋掉原生導覽列和狀態列的,但是跳到新的頁面效果不好,所以我們做的就是把這個頁面做成彈窗的形式,讓用戶感覺不到是跳到了新的頁面,就像在當前頁面彈出一樣(例如我們常見的在商品詳情頁領優惠券功能)。

下面我們就以領取優惠券功能為例,顯示優惠券的頁面例如路徑為:pages/popup/coupon.vue 我們在pages.json檔案中如下配置:

{
  "path": "pages/popup/coupon",
    "style": {
      "navigationStyle": "custom",
      "navigationBarTextStyle": "white",
         "app-plus": {
           "animationType": "fade-in",
           "background": "transparent",
           "backgroundColor": "transparent",
           "popGesture": "none" // 关闭IOS屏幕左边滑动关闭当前页面的功能
        }
    }
}

然後我們在需要彈出領券頁面vue檔案寫(注意使用open-type="navigate"的方式):

<navigator url="/pages/popup/coupon" hover-class="none">领券</navigator>

僅僅以上兩個步驟,就完成了自訂彈跳窗覆蓋原生導航列和狀態列的效果,並且相容於APP和小程序,在H5端會差點不過也能接受,如果希望更好的效果建議使用上面介紹的設定層級的方法。

有部分使用者回饋這種方式不好互動傳值,其實這個並不是問題,也有解決方案,我們可以採用 uni.setStorageSync 或直接頁面傳參的方式都是可以的。

Uniapp開發中自訂彈窗如何覆寫原生導覽列和狀態列

需要uni原始碼的可以到Dcloud外掛程式市場下載,完全免費:可覆蓋原生導覽列和狀態列的彈窗效果

以上是Uniapp開發中自訂彈窗如何覆寫原生導覽列和狀態列的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),