返回顶部
首页 > 资讯 > 前端开发 > JavaScript >微信小程序使用ucharts在小程序中加入横屏展示功能的全过程
  • 731
分享到

微信小程序使用ucharts在小程序中加入横屏展示功能的全过程

2024-04-02 19:04:59 731人浏览 独家记忆
摘要

目录前言实现思路实现步骤1. 添加一个按钮用来开启横屏模式2. 准备一个容器总结 前言 由于手机屏幕宽度的限制,当数据量较大时,观看体验并不是很好,因此横屏展示的功能就显得

前言

由于手机屏幕宽度的限制,当数据量较大时,观看体验并不是很好,因此横屏展示的功能就显得必要了,还好ucharts官方提供了横屏展示的功能,可以免去自己手改的麻烦,不过在实现的时候还是需要注意一些地方。

本文只贴出了部分关键实现代码而非全部代码,仅提供思路和实现参考。

实现思路

开启横屏显示的配置如下:

opts: {
  rotate: true,
}

现在只需要在页面中提供一个按钮作为入口,动态改变opts.rotate的值,然后提供一个用来横屏展示的容器就可以了。

实现步骤

1. 添加一个按钮用来开启横屏模式

用一个iconfont图标作为一个按钮显示:

<view class="rotate-mode-btn iconfont icon-a-appenlarge" @click="rotateMode"></view>

设置一下按钮的样式,放在一个合适的位置:

.icon-a-appenlarge {
	position: absolute;
	right: -20rpx;
	bottom: 200rpx;
	background: transparent;
	color: #a7c2fa;
}

2. 准备一个容器

准备的容器应该覆盖在其它所有组件(除了顶部导航)之上,可以自己写一个容器,或者使用第三方组件达成目的。

在这里我使用了uView组件库的遮罩层作为容器:uView-vue3.0版

最后,为了能够退出横屏模式,在横屏状态下的右上角添加一个退出按钮。

代码如下:

<u-mask :show="isshowRotate">
	<view :class="maskClass">
	<view class="iconfont icon-close" @click="closeRotateMode"></view>
</u-mask>

关键代码释义

:show="isShowRotate"是显示和隐藏遮罩层的属性。通过第一步中绑定的方法rotateMode实现,代码如下:

// 开启横屏模式
rotateMode() {
	this.isShowRotate = true
	// 隐藏底部导航
	uni.hideTabBar()	
},

@click="closeRotateMode"用来关闭遮罩层,并将数据清空,显示底部导航栏:

closeRotateMode() {
	this.isShowRotate = false
	this.chartsData_rotate = {}
	uni.showTabBar()
}

<view :class="maskClass">":maskClass是一个计算属性,用来显示/隐藏容器,相关sCSS如下,仅供参考。

.mask-wrapper {
	width: 95%;
	height: 0;
	position: absolute;
	left: 8px;
	bottom: 20px;

	&.show {
		height: calc(100% - 120px);
	}
}

结果如下:

横屏模式容器

3.将图表放入容器中

<view class="tabel-charts-rotate">
	<u-mask :show="isShowRotate">
		<view :class="maskClass">
			<qiun-data-charts :type="chartsShowType" :chartData="chartsData_rotate" :opts="opts_rotate"
				:ontouch="true" :onzoom="true" :canvas2d="Boolean($config.data.canvas2d)"
				:canvasId="canvasId_rotate" tooltipFORMat="formatTooltipData" :reshow="isShowRotate"
				:inScrollView="true" />
		</view>
		<view class="iconfont icon-close" @click="closeRotateMode"></view>
	</u-mask>
</view>
rotateMode() {
	this.isShowRotate = true
	// 设置1s延时,避免渲染出错
	setTimeout(() => {
		this.chartsData_rotate = JSON.parse(jsON.stringify(this.chartsData))
	}, 1000)
	// 隐藏底部导航
	uni.hideTabBar()
},

关键代码释义

this.chartsData_rotate = JSON.parse(JSON.stringify(this.chartsData))这段代码是用来深拷贝原图表数据的,因为如果横屏的图表使用和原来的图表同样的数据的话,会和原图表数据互相干扰。

<qiun-data-charts>是ucharts组件,其中的属性由自己的需求决定,这里进行部分说明。

:type="chartsShowType":动态改变图表类型。

tooltipFormat="formatTooltipData":提示框格式化方法。

:inScrollView="true":图表组件外部包裹了一个<scroll-view>组件,需要将该属性设为true,否则会出现提示框定位问题。

:reshow="isShowRotate":触发图表重绘。

最终效果如下:

最终效果

总结 

到此这篇关于微信小程序使用ucharts在小程序中加入横屏展示功能的全过程的文章就介绍到这了,更多相关ucharts在小程序加入横屏展示内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 微信小程序使用ucharts在小程序中加入横屏展示功能的全过程

本文链接: https://www.lsjlt.com/news/168405.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 微信小程序使用ucharts在小程序中加入横屏展示功能的全过程
    目录前言实现思路实现步骤1. 添加一个按钮用来开启横屏模式2. 准备一个容器总结 前言 由于手机屏幕宽度的限制,当数据量较大时,观看体验并不是很好,因此横屏展示的功能就显得...
    99+
    2024-04-02
  • 微信小程序实现横屏和竖屏签名功能
    本文实例为大家分享了微信小程序实现横屏和竖屏签名的具体代码,供大家参考,具体内容如下 wxml <view class="container">   <canvas...
    99+
    2024-04-02
  • 怎么在微信小程序中使用表单功能
    在微信小程序中使用表单功能的方法:1.在小程序页面添加表单容器;2.在表单容器添加组件;3.在小程序后台查看并处理用户信息;具体步骤如下:首先小程序页面中添加一个“表单容器”,表单容器里会默认放一些文本输入框组件和一个提交按钮组件,然后在右...
    99+
    2024-04-02
  • 小程序通过小程序云实现微信支付功能实例
    目录一、开通微信支付 1.1 关联商户号1.2 添加商户号1.3 管理员授权二、云函数开发2.1 新建云函数2.2 云函数代码2.3 云函数上传并部署三、小程序调用3.1 ...
    99+
    2024-04-02
  • Spring Boot中的微信支付全过程(小程序)
    目录前言一、申请流程和步骤二、注册商家2.1商户平台2.2商户id三、API私钥(支付密钥)四、商户签约微信支付产品五、配置回调地址六、小程序获取APPID七、微信支付与小程序绑定八...
    99+
    2024-04-02
  • 微信小程序显示loading效果,微信小程序节流效果,微信小程序生命周期,微信小程序组件的创建与使用
    一、显示loading效果         文档地址:wx.showLoading(Object object) | 微信开放文档         请求前 显示loading 效果,请求结束后隐藏loading // 在请求模块中wx.sh...
    99+
    2023-09-14
    微信小程序 小程序 微信
  • 微信小程序实现美食展示与收藏功能
    目录一、项目展示二、首页三、收藏一、项目展示 今日美食是为用户提供各种美食的制作方法,详细介绍了配料和制作流程 二、首页 首页采用垂直布局,由搜索栏、轮播图、宫格三大组件组成 点击...
    99+
    2024-04-02
  • 微信小程序引入Vant框架的全过程记录
    前言 有时候会觉得微信小程序原生的ui差了那么一点点感觉,那么能不能引入三方框架呢?本文以引入Vant来进行举例,共包含8个步骤。不管是不是云开发项目都一样使用。 实现步骤 1....
    99+
    2024-04-02
  • 微信小程序中实现车牌输入功能
    目录前言背景大猜想找规律结构和样式组件实现参数键盘类型的判断获取输入内容组件传参组件使用测试解决键盘类型判断的bug结束语组件的代码使用页面代码前言 哈哈哈,上新文章啦。好久没有更...
    99+
    2024-04-02
  • 使用微信小程序实现表格排序功能
    使用微信小程序实现表格排序功能随着微信小程序的流行,越来越多的开发者开始探索如何利用微信小程序实现更多有趣实用的功能。其中,实现表格排序功能是许多开发者感兴趣的一个话题。本文将介绍如何使用微信小程序实现表格排序功能,并提供具体的代码示例。一...
    99+
    2023-11-21
    表格 排序 微信小程序
  • 使用微信小程序实现拖拽排序功能
    使用微信小程序实现拖拽排序功能 示例代码刚开始学习微信小程序时,我一直以为实现拖拽排序功能是很困难的事情。然而,通过深入研究官方文档和尝试不同的方法,我终于成功地实现了这一功能。在本篇文章中,我将分享实现拖拽排序功能的具体代码示例。首先,在...
    99+
    2023-11-21
    微信小程序 功能实现 拖拽排序
  • 微信小程序项目中如何实现记账小程序功能
    这篇文章主要介绍微信小程序项目中如何实现记账小程序功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、小程序部分这是理财系统的前端,江苏海洋大学微信小程序比赛,最后获得了一等奖Gi...
    99+
    2024-04-02
  • 微信小程序中使用table
    ...
    99+
    2023-08-16
    微信小程序 小程序 table
  • 微信小程序自动化部署的全过程
    目录前言miniprogram-ci微信公众平台配置密钥文件脚本脚本具体模块讲解自动化部署实现第一种方式(推荐)第二种方式总结前言 我们先来梳理一下日常开发微信小程序的流程:代码开发...
    99+
    2024-04-02
  • 如何使用PHP在微信小程序中实现AI功能?
    如何使用PHP在微信小程序中实现AI功能?随着人工智能的发展,AI(Artificial Intelligence,人工智能)技术被广泛应用于各个领域。微信小程序作为一种强大的移动应用开发平台,也可以集成AI功能,为用户提供更智能的服务。本...
    99+
    2023-10-28
    AI PHP 微信小程序 实现
  • 微信小程序使用扩展组件库WeUI的入门教程
    目录微信小程序使用WeUI入门教程1. 学习参考2.NodeJs初始化3.安装WeUI组件库4.配置4.1 构建npm4.2 支持npm5.项目使用WeUI总结微信小程序使用WeUI...
    99+
    2024-04-02
  • 如何使用PHP开发微信小程序的在线课程功能?
    如何使用PHP开发微信小程序的在线课程功能?随着移动互联网的快速发展,微信小程序正逐渐成为企业和个人开展业务的利器。在教育行业中,使用微信小程序开发在线课程功能已经成为了一个热门的需求。本文将介绍如何使用PHP来开发微信小程序的在线课程功能...
    99+
    2023-10-27
    PHP 微信小程序 在线课程
  • 微信小程序无法全屏显示怎么解决
    如果微信小程序无法全屏显示,可能是因为以下原因:1. 设置了导航栏或者标题栏:在小程序的页面配置文件(app.json)中,可能设置...
    99+
    2023-08-15
    微信小程序
  • echart在微信小程序的使用简单示例
    目录echarts不显示在微信小程序css样式echarts的grid属性详解js总结echart在微信小程序的使用 echarts不显示在微信小程序 <!-- 微信小程序的e...
    99+
    2023-02-21
    微信小程序 echarts echarts怎么用 echart微信小程序
  • 如何在微信小程序中使用echart
    如何在微信小程序中使用echart?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先到ECharts官网下载我放的是tool文件夹下面,你们随意引入的时候注意路径就行2.使...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作