欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

uniapp調整webview的大小與位置解決遮擋問題的辦法

 更新時間:2025年01月04日 10:47:28   作者:printf_824  
這篇文章主要介紹了如何在uniapp中使用webview時控制其大小和位置,以避免擋住頂部內容,并提供了一個示例代碼,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

起因:

uniapp使用webview時默認的是全屏顯示

通過fullscreen="false"和webview-styles="style"兩個屬性可以控制大小,但是依然會擋住頂部的東西,只能以百分比的單位去控制寬高且無法控制位置

解決方案:

眾所周知,query.select().boundingClientRect可以獲取元素的高度,$getAppWebview可以獲取webview實例,uni.getSystemInfoSync()可以獲取屏幕高度,因此我們就可以通過控制webview定位來讓一些內容顯示出來,并且可以修改webview實例的高度,以下是我使用時的示例,僅供參考:

<view class="base_header">
			<mHeader ref="base_header"></mHeader>
		</view>
		<view class="main">
			<view class="bage_close">

				<close color="#000" ref="bage_close"></close>
			</view>

			<web-view :fullscreen="false" src="xxx"></web-view>
		</view>
onMounted(() => {
		const instance = getCurrentInstance();
		const query = uni.createSelectorQuery().in(instance);
		const {
			windowHeight
		} = uni.getSystemInfoSync(); // 屏幕高度(單位:px)
		console.log("屏幕高度:", windowHeight);
		if (instance && instance.proxy) {
			const currentWebview = instance.proxy.$scope?.$getAppWebview();
			if (currentWebview) {
				nextTick(() => {
					setTimeout(() => {
						let closeHeight = 0;
						let baseHeaderHeight = 0;

						query
							.select(".base_header")
							.boundingClientRect((res) => {
								if (res && res.height) {
									baseHeaderHeight = res.height;
								} else {
									baseHeaderHeight = 100; // 默認高度
								}
							})
							.select(".bage_close")
							.boundingClientRect((res) => {
								if (res && res.height) {
									closeHeight = res.height + 100;
								} else {
									closeHeight = 100; // 默認高度 
								}
							})
							.exec(() => {
								const totalTop = closeHeight + baseHeaderHeight;
								console.log("Calculated totalTop:", totalTop);

								const wv = currentWebview.children()?.[0];
								if (wv) {
									wv.setStyle({
										top: `${totalTop}px`,
										height: `${windowHeight-totalTop-30}px`,
										zIndex: -1,
									});
								}
							});
					}, 300);
				});
			}
		}
	});

假設遇見了點擊事件問題,記得調整內容的層級(position: relative;z-index: 1000;)

總結

到此這篇關于uniapp調整webview的大小與位置解決遮擋問題的文章就介紹到這了,更多相關uniapp調整webview大小與位置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JavaScript數(shù)組的棧方法與隊列方法詳解

    JavaScript數(shù)組的棧方法與隊列方法詳解

    這篇文章主要介紹了JavaScript數(shù)組的棧方法與隊列方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-05-05
  • JavaScript實現(xiàn)動態(tài)添加,刪除行的方法實例詳解

    JavaScript實現(xiàn)動態(tài)添加,刪除行的方法實例詳解

    這篇文章主要介紹了JavaScript實現(xiàn)動態(tài)添加,刪除行的方法,較為詳細的分析了javascript操作table表格實現(xiàn)針對表格元素動態(tài)操作的相關技巧,需要的朋友可以參考下
    2015-07-07
  • 微信小程序sessionid不一致問題解決

    微信小程序sessionid不一致問題解決

    這篇文章主要介紹了微信小程序sessionid不一致問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • js實現(xiàn)的后臺左側管理菜單代碼

    js實現(xiàn)的后臺左側管理菜單代碼

    這篇文章主要介紹了js實現(xiàn)的后臺左側管理菜單代碼,可實現(xiàn)美觀大氣的左側折疊菜單效果,涉及JavaScript基于鼠標事件動態(tài)操作頁面元素樣式變換的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-09-09
  • JS中用try catch對代碼運行的性能影響分析

    JS中用try catch對代碼運行的性能影響分析

    要捕獲JavaScript代碼中的異常一般會采用 try catch,不過try catch的使用是否是對代碼性能產(chǎn)生影響呢?答案是肯定有的,但是有多少不得而知。下面這篇文章就給大家詳細介紹了在JS中用try catch對代碼運行的性能影響,有需要的朋友們可以參考借鑒。
    2016-12-12
  • 微信小程序中的數(shù)據(jù)存儲實現(xiàn)方式

    微信小程序中的數(shù)據(jù)存儲實現(xiàn)方式

    這篇文章主要介紹了微信小程序中的數(shù)據(jù)存儲實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-08-08
  • JS+CSS制作DIV層可(最小化/拖拽/排序)功能實現(xiàn)代碼

    JS+CSS制作DIV層可(最小化/拖拽/排序)功能實現(xiàn)代碼

    DIV層最小化和隨意拖拽排序,很多的愛好者都想實現(xiàn)這個功能,小編整理搜集了一下,希望本文的知識點可以幫助到你
    2013-02-02
  • JS函數(shù)式編程之純函數(shù)、柯里化以及組合函數(shù)

    JS函數(shù)式編程之純函數(shù)、柯里化以及組合函數(shù)

    這篇文章主要介紹了JS函數(shù)式編程之純函數(shù)、柯里化以及組合函數(shù),文章對三個函數(shù)進行分析講解,內容也很容易理解,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2023-01-01
  • JavaScript原型鏈與繼承操作實例總結

    JavaScript原型鏈與繼承操作實例總結

    這篇文章主要介紹了JavaScript原型鏈與繼承操作,結合實例形式總結分析了javascript原形鏈與繼承的相關概念、使用方法及操作注意事項,需要的朋友可以參考下
    2018-08-08
  • javascript設計模式 – 模板方法模式原理與用法實例分析

    javascript設計模式 – 模板方法模式原理與用法實例分析

    這篇文章主要介紹了javascript設計模式 – 模板方法模式原理,結合實例形式分析了javascript模板方法模式相關概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04

最新評論