ucharts图表滚动

背景:

使用ucharts绘制折线图,当数据项多的时候,横坐标显示的文字会重合,故想到滑动

项目代码使用的是原生的代码,而非ucharts的组件:

<template><view><canvas canvas-id="chartsLine" id="chartsLine" class="w-full" @touchstart="touchstart" @touchmove="touchmove" @touchend="touchend" /></view>
</template>

1. 整体配置开启可滑动

2. X轴配置--设置最多显示的数据项

3. 设置滚动条拖拽事件

@touchstart="touchstart" @touchmove="touchmove" @touchend="touchend"touchstart(e) {uChartsInstance[e.target.id].scrollStart(e);},touchmove(e) {uChartsInstance[e.target.id].scroll(e);},touchend(e) {uChartsInstance[e.target.id].scrollEnd(e);uChartsInstance[e.target.id].touchLegend(e);uChartsInstance[e.target.id].showToolTip(e);}

注意:通常之前的canvas包含了@touchend="tap" 事件,记得删除一下

补充:动态计算最多显示项

1. 动态计算图表的屏幕显示宽度

this.$nextTick(() => {let info = uni.createSelectorQuery().in(this).select('#chartsLine');let that = thisinfo.boundingClientRect(function(data) {that.cWidth = data.widththat.cHeight = data.heightthat.getServerData()}).exec(function(res) {})
})

其中id为 chartsLine 的 canvas 宽度设置为父组件的百分百

2. 获取图表类别的字符串长度, 并赋予每个字符一定的宽度,显示宽度/每个类别宽度即可

// 考虑到我的类别文字长度相差不大,此处选择了第一个类别,也可自行选择合适的类别
const str = this.$props.option.categories[0]// 默认每个字符13px
const len = str.length * 13// 显示的数据项应为整数
this.itemCount = Math.floor(this.cWidth / len)

3. 动态设置显示数据项

效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/52141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各类软件历史版本的下载地址

postman,notpad等 https://www.filehorse.com/software-developer-tools/https://www.filehorse.com/software-developer-tools/

pdf查看密码

pdf有两种密码方式&#xff0c;一种是打开后进入文件内容页面后需要密码才能进行修改等操作&#xff0c;网上有很多方式进行移除密码操作&#xff0c;第二种是打开就需要密码&#xff0c;我这里简单记录一个暴力破解的方式&#xff0c;仅供参考 import PyPDF2 import itertools…

FreeRTOS学习:内存管理

FreeRTOS内存管理简介 在使用 FreeRTOS 创建任务、队列、信号量等对象的时候&#xff0c; FreeRTOS 一般都提供了两种方法&#xff0c; 动态方法创建&#xff1a;自动地从 FreeRTOS 管理的内存堆中申请所创建对象所需的内存&#xff0c;在对象被删除后&#xff0c;又可以将这…

day33(mysql57主从从+mycat读写分离+java项目结合mycat数据库+lvs_dr轮询调用java项目)

1.设置主从从mysql57服务器 &#xff08;1&#xff09;配置主数据库 [rootmsater_5 ~]# systemctl stop [rootmsater_5 ~]# setenforce 0 [rootmsater_5 ~]# systemctl disable Removed symlink /etc/systemd/system/multi-user.target.wants/# ls anaconda-ks.cfg mysql-5.7…

C语言家教记录(七)

C语言家教记录&#xff08;七&#xff09; 导语字符串字面量变量读写字符串操作函数惯用法数组 结构联合枚举总结与复习 导语 本次授课的内容如下&#xff1a;字符串&#xff0c;结构体、联合体、枚举 辅助教材为 《C语言程序设计现代方法&#xff08;第2版&#xff09;》 字…

二刷代码随想录训练营Day 38|322. 零钱兑换、279.完全平方数、139.单词拆分

1.零钱兑换 视频讲解&#xff1a;动态规划之完全背包&#xff0c;装满背包最少的物品件数是多少&#xff1f;| LeetCode&#xff1a;322.零钱兑换_哔哩哔哩_bilibili 代码随想录 代码&#xff1a; class Solution { public:int coinChange(vector<int>& coins, int …

VA水封特点及优势

水封是工业应用中至关重要的组件&#xff0c;起到防止液体泄漏并确保机械设备顺利运行的作用。在众多类型的水封中&#xff0c;VA水封因其独特的特性而广受欢迎。那么&#xff0c;VA水封究竟有哪些特点使其在特定场景中特别有效呢?本文将从设计、材料构成和性能优势等多个角度…

每天一个数据分析题(四百九十七)- 序列模式挖掘

序列模式挖掘 (sequence pattern mining &#xff09;是指挖掘相对时间或其他模式出现频率高的模式&#xff0c;典型的应用还是限于离散型的序列。下列哪个选项不属于序列模式的时限约束&#xff1f; A. 最大跨度约束 B. 主键约束 C. 最小间隔和最大间隔约束 D. 窗口大小约…

Qt实现圆型控件的三种方法之设置样式表

前言 最近在研究绘制各种形状的控件&#xff0c;这里专门挑出圆形的控件进行记录&#xff0c;其它形状的也大差不差&#xff0c;会了圆形的之后其它的也类似。 正文 这里我挑出Label来进行举例。 通过设置样式表 (QSS) 这种方法简单且适用于不需要自定义绘制的场景。就是要…

【OpenFeign】OpenFeign指定url方式调用

OpenFeign一般是结合注册中心一起使用的&#xff0c;也就是可以通过提供服务的名称而不是url来完成对目标服务的访问。但是出于本地调试的需要&#xff0c;或者考虑到一些简单的服务可能并不需要依赖注册中心&#xff0c;所以本篇我们就讲解一下OpenFeign直接通过目标服务的url…

vue2项目 预渲染 Unable to prerender all routes 错误排查与解决方案

前言 今天在做我的Vue2项目的SEO优化时&#xff0c;我采用了prerender-spa-plugin与vue-meta-info的一套官网前端SEO预渲染方案。 但是&#xff0c;在打包时&#xff0c;报错Unable to prerender all routes。尝试了很多种网上方案&#xff0c;都没有成功&#xff0c;最后从源…

基于vue3和audio封装的简易音频播放器

样式如图所示 <template><div class"audio-player"><div class"player_top" flex-ac flex-justify-between ><div class"fileName genericTitle" fs-28 l-height-32 height-64 pr-42 flex-ac><span class"t…

维护和升级LabVIEW程序

在维护和升级LabVIEW程序时&#xff0c;需要全面考虑代码的现状和未来的需求。以下是各个方面的详细注意事项&#xff0c;以确保程序能够在稳定性和性能方面得到提升。 1. 理解现有代码: 深入代码分析: 仔细阅读现有的代码&#xff0c;了解其逻辑结构、数据流、和控制流程。关注…

中国大模型平台市场份额最新排名Top5!场景化应用昭示新蓝海

8月21日&#xff0c;IDC&#xff08;国际数据公司&#xff09;首次发布了《中国大模型平台市场份额&#xff0c;2023&#xff1a;大模型元年 —— 初局》。数据显示&#xff0c;2023年中国大模型平台及相关应用市场规模达17.65亿元人民币。 在过去的2023年&#xff0c;行业对于…

Linux用户账户管理精髓:创建、删除、密码与会话管理全攻略

目录 一、创建与删除用户 二、设置与修改密码 三、用户切换与会话管理 在Linux系统中&#xff0c;用户账户管理是系统管理员日常工作中不可或缺的一部分。良好的用户账户管理不仅有助于维护系统的安全性&#xff0c;还能提高系统的可用性和可管理性。以下将详细介绍创建与删…

会话跟踪方案:Cookie Session Token

什么是会话技术&#xff1f; Cookie 以登录为例&#xff0c;用户在浏览器中将账号密码输入并勾选自动登录&#xff0c;浏览器发送请求&#xff0c;请求头中设置Cookie&#xff1a;userName:张三 ,password:1234aa &#xff0c;若登录成功&#xff0c;服务器将这个cookie保存…

「数组」数组双指针算法合集:二路合并|逆向合并|快慢去重|对撞指针 / LeetCode 88|26|11(C++)

目录 概述 1.二路合并 思路 复杂度 Code 2.逆向合并 思路 复杂度 Code 3.快慢去重 思路 复杂度 Code 4.对撞指针 思路 复杂度 Code 总结 概述 数组的线性枚举是我们学习编程时遇到的第一种枚举手段。但是它看起来有点愚蠢&#xff1a;只有一个索引i承担全部…

linux基础命令(超级详细)

Linux 系统提供了丰富的命令行工具&#xff0c;用于各种文件操作、系统管理和网络配置等任务。以下是一些常用的 Linux 基础命令&#xff1a; 一、 文件和目录操作 1. ls: 列出目录内容 ls 列出当前目录的文件和目录 ls -l 以长格式列出文件和目录&#xff0c;包…

学生党蓝牙耳机哪个牌子性价比高?推荐四款内行精选百元耳机!

作为没有什么经济来源的学生党&#xff0c;唯一来钱的途径就是家里给的生活费。所以在选择一款蓝牙耳机时就很纠结&#xff0c;那么首先你得清楚学生党的购物习性&#xff0c;因为大部分学生党在买东西时因为经济能力问题&#xff0c;主要追求的还是性价比&#xff0c;可以在实…

IP-RDS-222、IP-PRZ-59-AM12、EG-TRZ-42-L、EG-TRZ-42-H比例减压阀放大器

IP-DAR-250、IP-DAR-43C-L、IP-DAR-43C-H、IP-RDS-222、IP-PRZ-59-AM12、EG-TRZ-42-L、EG-TRZ-42-H比例减压阀 EE-PRB、EE-PRD比例压力阀 EE-P2G、ET-P2S、EB-P2A、EE-P2A、ET-P2A、EE-P2H、EG-F2A、EU-F2A比例流量阀 EF-F3G、EU-F3G比例压力补偿流量阀 EQ-S4M、EG-S4M、EQ…