国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp開發(fā)小程序中因uchart的canvas層級過高遮蓋uni-datetime-picker組件的解決辦法

這篇具有很好參考價值的文章主要介紹了uniapp開發(fā)小程序中因uchart的canvas層級過高遮蓋uni-datetime-picker組件的解決辦法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

bug描述

頁面需要展示一個環(huán)形圖,可以按時間段篩選數據,所以我用了uchartuni-datetime-picker組件。
uniapp開發(fā)小程序中因uchart的canvas層級過高遮蓋uni-datetime-picker組件的解決辦法

但uchart用到了canvas,其層級過高,當實機運行小程序時會遮蓋彈出的uni-datetime-picker組件
uniapp開發(fā)小程序中因uchart的canvas層級過高遮蓋uni-datetime-picker組件的解決辦法

解決辦法

當uni-datetime-picker組件彈出遮罩時,把canvas移到用戶視野之外。

uni-datetime-picker組件本質就是普通的vue組件,進入uni-modules尋找uni-datetime-picker組件的代碼,通過監(jiān)聽控制uni-datetime-picker組件彈出收回的屬性控制canvas是否移出用戶視野之外。
幾經查找,選擇監(jiān)控uni-datetime-picker組件下的calendar組件的show屬性,因為實驗監(jiān)控uni-datetime-picker的popup屬性無法實現效果,所以找更靠譜的孫組件calendar,又因為我的uni-app版本不支持 $listen,所以被迫讓中間的uni-datetime-picker中轉 $emit,最終最上層自己寫的組件就可以監(jiān)聽uni-datetime-picker的顯示隱藏了。

在calendar組件里找到的控制臺歷顯示的show屬性
watch: {
			// 自己添加的控制爺組件canvas顯隱的監(jiān)視方法,以解決canvas層級過高問題
			show: {
				handler(newVal, oldVal) {
					if (this.show) {
						this.$emit('closeCanvas');
					}else {
						this.$emit('showCanvas');
					}
				}
			},
		}
在uni-datetime-picker組件里找到每一個用到calendar組件的地方加上自定義事件(closeCanvas,showCanvas)監(jiān)聽
<calendar ref="pcSingle" :showMonth="false"
	:start-date="caleRange.startDate" :end-date="caleRange.endDate" :date="defSingleDate"
	@change="singleChange" style="padding: 0 8px;" @closeCanvas="closeCanvas" @showCanvas="showCanvas"/>
<view class="popup-x-body">
	<calendar ref="left" :showMonth="false"
		:start-date="caleRange.startDate" :end-date="caleRange.endDate" :range="true"
		@change="leftChange" :pleStatus="endMultipleStatus" @firstEnterCale="updateRightCale"
		@monthSwitch="leftMonthSwitch" style="padding: 0 8px;" @closeCanvas="closeCanvas" @showCanvas="showCanvas"/>
	<calendar ref="right" :showMonth="false"
		:start-date="caleRange.startDate" :end-date="caleRange.endDate" :range="true"
		@change="rightChange" :pleStatus="startMultipleStatus" @firstEnterCale="updateLeftCale"
		@monthSwitch="rightMonthSwitch" style="padding: 0 8px;border-left: 1px solid #F1F1F1;" @closeCanvas="closeCanvas" @showCanvas="showCanvas"/>
</view>
<calendar v-show="isPhone" ref="mobile" :clearDate="false" :date="defSingleDate" :defTime="reactMobDefTime"
	:start-date="caleRange.startDate" :end-date="caleRange.endDate" :selectableTimes="mobSelectableTime"
	:pleStatus="endMultipleStatus" :showMonth="false" :range="isRange" :typeHasTime="hasTime" :insert="false"
	:hideSecond="hideSecond" @confirm="mobileChange" @closeCanvas="closeCanvas" @showCanvas="showCanvas"/>
uni-datetime-picker方法寫上中轉監(jiān)聽方法
// 監(jiān)聽calendar的觸發(fā),然后再向上傳遞
methods: {
	closeCanvas() {
		this.$emit('closeCanvas');
	},
	showCanvas() {
		this.$emit('showCanvas');
	}
}
在自己的組件用到uni-datetime-picker的地方也加上監(jiān)聽
<view class="datetime-picker-wrap">
	<uni-datetime-picker v-model="dateRange" type="daterange" rangeSeparator=""
		@change="dateRangeChange" @closeCanvas="closeCanvas" @showCanvas="showCanvas"/>
</view>

監(jiān)聽到組件的顯示隱藏就好辦了,寫一個讓canvas水平移出外面的樣式,uni-datetime-picker組件彈出就加上樣式,收回就去掉樣式即可。

動態(tài)加上移出視野的樣式代碼
<view class="card-box">
	<view class="card-title-box remove-border">
		<view class="card-title title-text">食品安全檢測數據統(tǒng)計</view>
	</view>
	<view class="card-content-box">
		<checkRingChart v-if="!isEmpty" class="check-ring-box" :class="hiddenCanvas ? 'hidden-canvas' : ''" :chartData="chartData" :title="title"
			:subtitle="subtitle" :color="color"></checkRingChart>
		<view v-if="isEmpty" class="empty-box-wrap">
			<view class="empty-box">
				<view class="empty-img"></view>
				<view class="empty-title">暫無數據</view>
			</view>
		</view>
	</view>
</view>
data() {
	return {
		hiddenCanvas: false
	};
},
methods: {
	closeCanvas() {
		this.hiddenCanvas = true;
	},
	showCanvas() {
		this.hiddenCanvas = false;
	}
}
.hidden-canvas {
	transform: translateX(200%);
}
大功告成

uniapp開發(fā)小程序中因uchart的canvas層級過高遮蓋uni-datetime-picker組件的解決辦法
可以看到canvas圖表在彈出框后被移走文章來源地址http://www.zghlxwxcb.cn/news/detail-411006.html

到了這里,關于uniapp開發(fā)小程序中因uchart的canvas層級過高遮蓋uni-datetime-picker組件的解決辦法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • uniapp-app視頻層級過高問題

    uniapp-app視頻層級過高問題

    使用v-html動態(tài)渲染 參考:uniapp video app端層級過高的問題,滑動渲染問題。_video在app端層級過高-CSDN博客 有想過使用原生,但是太麻煩了,然后換成了彈窗播放,但是動態(tài)的src播放失敗,錯誤提示: chunk-vendors.js:14882 Uncaught (in promise) DOMException: The element has no supported sources. ?

    2024年01月21日
    瀏覽(28)
  • uniapp video(倍速功能、層級過高、視頻第一幀做封面 等問題)

    uniapp video(倍速功能、層級過高、視頻第一幀做封面 等問題)

    ?????????由于上次寫video組件的問題,過于劃水,沒講清楚,導致自己花費了很多時間,重新踩坑,對自己很抱歉。 效果圖如下:倍速的顯示和隱藏,需在全屏的時候 和 顯示控制組件時 代碼邏輯 1. 實現倍速的核心是創(chuàng)建視頻組件控制器,調用它的倍速方法 =》官方文檔

    2024年02月08日
    瀏覽(27)
  • video層級過高,以及界面使用多個video時,在安卓APP上同時播放的問題(uniapp)

    問題一 : 我的界面由于是自定義導航欄,所以使用video時,上滑界面video會直在最上層,蓋著? 頭部導航欄 解決方法 :使用cover-view,自定義頭部使用cover-view替換view 問題二 :自定義導航欄上面有menu,點擊會出現一個彈出層,但是彈出層會被video壓到 解決方法 :使用原生窗體

    2024年02月06日
    瀏覽(24)
  • 解決微信小程序Echarts圖表層級過高的方案

    在微信小程序中使用Echarts圖表時,有時會遇到圖表層級過高的問題。這可能導致圖表無法正常顯示或部分內容被遮擋。本文將介紹一種解決方案,通過修改Echarts圖表的樣式和配置,可以有效解決這個問題。 解決方案如下: 檢查圖表容器的樣式 首先,我們需要檢查圖表容器

    2024年02月03日
    瀏覽(52)
  • 小程序 wxchart 折線圖層級過高滑動遮檔標題欄

    問題描述 : 標題欄背景色是漸變的,折線圖用wxchart,滑動的時候標題欄被線圖遮檔。 分析: wxcharts是使用了canvas,?屬性原來的組件,不是小程序自己的組件。 所以canvas層級權限是最高的,view不能蓋在canvas上面。那么折線圖就會蓋在標題欄上面。 參考小程序: cover-view

    2024年02月15日
    瀏覽(31)
  • 微信小程序canvas層級太高,與其他非原生組件層級沖突

    微信小程序canvas層級太高,與其他非原生組件層級沖突

    ?官網已經提出新版本以支持同層渲染,但是實際項目中層級還是沖突的。 ?最后在文檔中找到這樣一段話,用真機打開,層級就正常了 。所以建議大家,多使用真機調試去測試?。。?!

    2024年02月11日
    瀏覽(20)
  • 【微信小程序】解決canvas組件層級最高問題

    1、為什么canvas組件總是會在最上層? 因為canvas組件是由客戶端創(chuàng)建的原生組件, 原生組件層級是最高的 ,所以頁面中的其他組件無論設置 z-index 為多少都無法蓋在原生組件上 。 2、如何解決canvas層級最高問題?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? wx

    2024年02月11日
    瀏覽(85)
  • uniapp微信小程序中基于ucharts的柱狀圖示例

    uniapp微信小程序中基于ucharts的柱狀圖示例

    詳細介紹請詳讀-ucharts官網

    2024年02月03日
    瀏覽(14)
  • uniapp小程序ucharts點擊穿透和點擊位置偏移解決方案

    加上這些,完美解決 問題如標題,解決辦法是在微信小程序中添加 inScrollView=\\\"true\\\"屬性。 另說明:canvas2d=\\\"true\\\"作用,開啟canvas2d渲染模式,需要與canvas-id=\\\"xxx\\\" 一起使用。 如不開啟會存在圖表層級過高,不跟隨頁面滑動等問題。

    2024年02月16日
    瀏覽(89)
  • uniapp web-view頁面層級過高,想在web-view上層再加入按鈕,采用plus.nativeObj.View實現。動態(tài)創(chuàng)建web-view解決切換src后丟失背景問題。

    uniapp web-view頁面層級過高,想在web-view上層再加入按鈕,采用plus.nativeObj.View實現。動態(tài)創(chuàng)建web-view解決切換src后丟失背景問題。

    需求 :有兩個web-view頁面,需要添加按鈕,動態(tài)切換web-view的src進行頁面切換 問題 :uniapp的web-view層級很高,通過positon的z-index無法將其他元素置于web-view頁面上層 解決方式 :采用底層組件plus.nativeObj.View創(chuàng)建視圖,該視圖比web-view層級高,可在web-view上層添加 按鈕,圖片,矩

    2024年02月11日
    瀏覽(60)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包