微信小程序基于wx-charts的canvas组件横向滚动

本文介绍如何在微信小程序中利用wx-charts绘制折线图,并解决因数据过多导致的x轴挤压问题。通过监听scroll事件,动态调整canvas内容实现横向滚动。在数据较少时全屏展示,数据多时可左右滚动,但存在滚动不流畅和无法使用wx-charts内置触摸处理的不足。

在微信小程序里插入折线图,可以使用wx-charts,在绘制到canvas上。
wx-charts具体用法就不介绍了。折线图显示后,却发现了一个问题:数据x轴长度不确定,导致如果数据很长的话,数据就会挤在一起,如果长度较大,canvas能滚动就好了。
在网页中,我们直接设置父元素固定宽度,子元素宽度超过父元素,让父元素overflow:auto;就行了,可是对微信小程序的canvas组件不起作用。
第一时间想到scroll-view组件,但是scroll-view组件不能作为canvas的父元素。但是
研究发现,虽然canvas不会响应scroll-view的滚动,但是bindscroll事件方法是有返回值的,e.detail里有个scrollLeft参数,是随滚动不断变化的,
一、wxml部分
在这里插入图片描述
二、css部分
在这里插入图片描述
三、js部分
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
四、结果
在这里插入图片描述
在这里插入图片描述

当数据较少时,canvas会全屏展示,不能滚动,当数据较多时,可以左右滚动。
不足之处:1、因为canvas的滚动是在滑动结束,获取到scrollLeft值之后的操作,所以滚动很生硬,不流畅;
2、不能使用wx-charts内置方法touchHandler。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值