小程序ucharts层级过高如何解决

这篇具有很好参考价值的文章主要介绍了小程序ucharts层级过高如何解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uniapp小程序ucharts层级过高

  1. 为什么canvas组件总是会在最上层?
    由于canvas组件是原生组件,原生组件的层级是最高的,所以页面中的其他组件无论设置 z-index 为多少,都无法盖在原生组件上
  2. 在页面出现点击事件,存在弹框,ucharts的图层会会出现在弹框上层,ucharts的图层事件会超过弹框事件,导致样式出现问题。
    可以在弹框显示的时候,将ucharts图形,转换称图片的形式显示。
    使用v-show的方式,切换显示。从而不会出现层级的问题。
  3. 部分代码如下,不可以直接运行
<view class="charts-box">
					 <canvas v-show="!BugShow" canvas-id="drawxychartsmonth" id="drawxychartsmonth" class="charts" @touchend="tap"/>
					  <image v-show="BugShow" :src="canvasImg" style="width: 650rpx; height: 300rpx;" />
					</view>
//这里的 750 对应 css .charts 的 width
		this.cWidth = uni.upx2px(600);
		//这里的 500 对应 css .charts 的 height
		this.cHeight = uni.upx2px(300);
 drawCharts(id,data){
		      const ctx = uni.createCanvasContext(id, this);
			  var that=this;
		      uChartsInstance[id] = new uCharts({
		        type: "area",
		        context: ctx,
		        width: this.cWidth,
				canvas2d:true,
				canvasId: id,
		        height: this.cHeight,
		        categories: data.categories,
		        series: data.series,
		        animation: true,
		        background: "#FFFFFF",
				dataLabel:false,
		        color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
		        padding: [15,0,0,0],
		        legend: {
					show:false,
				},
		        xAxis: {
		          disableGrid: true,
				  boundaryGap:'justify',
				  fontSize:"10",
				  formatter: function (value, index,opts) {
					  if(index=='0' || index==(opts.categories.length-1)){
						return value;  
					  }else{
						  return ""
					  }	
				  },
				  axisLabel: {//x轴文字的配置
				              show: true,
				              interval: 0,//使x轴文字显示全
				             }
		        },
		        yAxis: {
				  type: "value",
		          gridType: "solid",
				  axisTick: {
				              inside: true
				          },
				  scale: true,
				  data:[
					  {
						fontSize:"10",
						formatter: function (value, index,opts) {
							if(that.tipType=="2"){
								 return formatAmount(value, 4)
							}else if(that.ischartsPro){
							  return formatAmount(value, 3) + '%'	
							}else{
								return formatAmount(value, 4)
							}
						}, 
					  }
				  ],
				  axisLabel: {
				         margin: 2,
						 show: true,
				        },
		        },
				grid: { x: 45, y: 20, x2: 16, y2: 8, width: 'auto', height: 'auto', left: '20%' },
		        extra: {
				  tooltip:{
					  showBox:true,
					  showArrow:false,
					  borderRadius:5,
					  fontColor:"#4f9acc",
					  bgOpacity:"1",
					  bgColor:"#ffffff",
					  borderWidth:"1",
					  borderColor:"#7698ad",
					  labelBgColor: "#FFFFFF",
				  },
		          area: {
		            type: "curve",
		            opacity: 0.5,
		            addLine: true,
		            width: 2,
		            gradient: true,
		            activeType: "hollow"
		          },
		        }
		      });
		    },
  tap(e){
			  var that=this;
		      uChartsInstance[e.target.id].touchLegend(e);
		      uChartsInstance[e.target.id].showToolTip(e,{
					formatter: (item, category, index, opts) => {
					  if(that.tipType=="1" && that.ischartsPro){
						return "自定义/"+item.name + ":" + formatAmount(item.data, 3)+ '%' +'/'+'日期'+ ":" +category;
					  }else{
						return "自定义/"+item.name + ":" + formatAmount(item.data, 4) +'/'+'日期'+ ":" +category;
					  }
					
					}
				  });
		    },
// 需要让 弹窗等 出现在canvas上的事件
		handleCanvarToImg() {
		  var that=this;
		  uni.canvasToTempFilePath({
		    x: 0,
		    y: 0,
		    width: 650,
		    height: 300,
		    canvasId: 'drawxychartsmonth',
		    success: function(res) {
		      that.canvasImg=res.tempFilePath;
		    }
		  });
		},```

文章来源地址https://www.toymoban.com/news/detail-532371.html

到了这里,关于小程序ucharts层级过高如何解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序canvas层级太高,与其他非原生组件层级冲突

     官网已经提出新版本以支持同层渲染,但是实际项目中层级还是冲突的。  最后在文档中找到这样一段话,用真机打开,层级就正常了 。所以建议大家,多使用真机调试去测试!!!!

    2024年02月11日
    浏览(47)
  • canvas层级太高问题的解决办法

    因为canvas组件是由客户端创建的原生组件,原生组件层级是最高的,所以页面中的其他组件无论设置 z-index 为多少都无法盖在原生组件上。 1.html页面的处理 加上一个判断wx:if=“{{!canvasImg}}” 2.js页面的处理 (1)data中声明一个变量canvasImg (2)新增方法:处理canvas转化为图片

    2024年02月12日
    浏览(35)
  • uniapp中video层级太高解决方案,适用安卓/IOS/H5

    官方给出的方案比较繁琐复杂,因此自己写了一个简单粗暴的组件,利用iframe实现 1.我们直接新建一个nVideo.vue的组件 2.在需要使用的地方直接引入使用这个组件,只需传src视频地址进来即可 话不多说,直接上代码 直接在需要用到的地方引入使用即可 使用频率高的话可全局注

    2024年02月06日
    浏览(48)
  • 【微信小程序】echart中canvas原生组件层级太高遮挡vantui中的组件

    之前的问题图片如下: 最开始想到的方案是降低canvas的层级,但是canvas是原生组件,他的层级是没法改变 所以又想到改变vant组件的层级,但是一样无果。。。 随后,看到网上大篇幅的都是使用显示隐藏来操控picker的,这样会如果页面可以滑动,就导致用户还是可以看到ec

    2024年02月13日
    浏览(47)
  • video视频背景层级过高解决方案

    uni-app开发的项目中使用video标签设置视频做为页面背景,video标签层级过高,页面中内容不展示。 官方提供了三种办法: cover-这个标签使用说明:这个标签APP端它不支持嵌套,就是就算这种都是不支持的,所以如果你的页面比较复杂的话这种方法是不行的,页面元素简单的话

    2024年02月03日
    浏览(39)
  • 小程序 wxchart 折线图层级过高滑动遮档标题栏

    问题描述 : 标题栏背景色是渐变的,折线图用wxchart,滑动的时候标题栏被线图遮档。 分析: wxcharts是使用了canvas, 属性原来的组件,不是小程序自己的组件。 所以canvas层级权限是最高的,view不能盖在canvas上面。那么折线图就会盖在标题栏上面。 参考小程序: cover-view

    2024年02月15日
    浏览(63)
  • 关于uniapp小程序内置canvas标签层级过高,覆盖其他标签问题

    uniapp 原因:是因为canvas是原生组件,而uniapp的 view、text 等标签相当于二次封装过的,给予z-index也是不生效的,微信开发者工具没有问题,但真机测试会爆这个雷 恰巧碰上一个需求需要一个canvas生成图片放在页面,点击按钮后生成一个二维码模态框,二维码也是canvas生成图

    2024年02月12日
    浏览(72)
  • uniapp-app视频层级过高问题

    使用v-html动态渲染 参考:uniapp video app端层级过高的问题,滑动渲染问题。_video在app端层级过高-CSDN博客 有想过使用原生,但是太麻烦了,然后换成了弹窗播放,但是动态的src播放失败,错误提示: chunk-vendors.js:14882 Uncaught (in promise) DOMException: The element has no supported sources.  

    2024年01月21日
    浏览(73)
  • uniapp小程序ucharts点击穿透和点击位置偏移解决方案

    加上这些,完美解决 问题如标题,解决办法是在微信小程序中添加 inScrollView=\\\"true\\\"属性。 另说明:canvas2d=\\\"true\\\"作用,开启canvas2d渲染模式,需要与canvas-id=\\\"xxx\\\" 一起使用。 如不开启会存在图表层级过高,不跟随页面滑动等问题。

    2024年02月16日
    浏览(71)
  • uniapp web-view页面层级过高,想在web-view上层再加入按钮,采用plus.nativeObj.View实现。动态创建web-view解决切换src后丢失背景问题。

    需求 :有两个web-view页面,需要添加按钮,动态切换web-view的src进行页面切换 问题 :uniapp的web-view层级很高,通过positon的z-index无法将其他元素置于web-view页面上层 解决方式 :采用底层组件plus.nativeObj.View创建视图,该视图比web-view层级高,可在web-view上层添加 按钮,图片,矩

    2024年02月11日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包