HTML实现循环列表,小程序实现循环列表中的图表效果

要实现饼图图标效果,可以用JS插件实现,这里我们用到ECharts插件,通过查找资料,发现ECharts是有小程序版的,Git网址:

要实现单个页面下多个图表,文档里的demo只能固定数量,如我要在for循环里不固定数量的情况下,用官方默认demo的代码实现不了,所以我们建一个demo,具体实现方法如下:

1、按照官方文档在小程序里正确加载ec-canvas插件,然后通过ECharts在线构建定制精简包,替换ec-canvas里的echarts.js文件,以减少小程序包的大小。

2、修改插件中wx-canvas.js文件的代码,增加一个参数的传入:tuData。改好的插件已放入附件里提供下载。

3、页面JS代码://index.js

//获取应用实例

const app = getApp()

import * as echarts from '../../ec-canvas/echarts';

Page({

data: {

//测试的列表数据,实际使用的话可能需要手动进行数据整理

listData: [

{

id: 1,

title: "使用纯CSS代码实现3D旋转效果",

tuData: [

{

value: 20,

name: "浏览量"

},

{

value: 30,

name: "退出量"

}

]

},

{

id: 2,

title: "微信公众号开发调用微信接口(以扫一扫为例)",

tuData: [

{

value: 10,

name: "浏览量"

},

{

value: 50,

name: "退出量"

}

]

},

{

id: 3,

title: "下面是小程序的折线图demo",

tuData: [

{

value: 20,

name: "浏览量"

},

{

value: 80,

name: "退出量"

}

]

}

],

// 图表初始化

ec: {

onInit: function (canvas, width, height, dpr, data) {

const barChart = echarts.init(canvas, null, {

width: width,

height: height,

devicePixelRatio: dpr // new

});

canvas.setChart(barChart);

var option = {

tooltip: {

trigger: 'item',

formatter: '{a} n{b} : {c} ({d}%)'

},

toolbox: {

show: true,

feature: {

restore: { show: true }

}

},

calculable: true,

series: [{

name: '选项',

type: 'pie',

center: ['50%', '50%'],

radius: '50%',

data: data

}]

}

barChart.setOption(option);

return barChart;

}

}

}

})

4、wxml代码,循环列表

5、CSS代码,定义图表大小/**index.wxss**/

.li{ border: 1px solid #ddd; border-radius: 10rpx; margin: 20rpx; padding: 20rpx; }

.graph .canvas{ display: block; width: 100%; height: 550rpx; }

6、json文件代码,声明插件{

"usingComponents": {

"ec-canvas": "/ec-canvas/ec-canvas"

},

"navigationBarTitleText": "浏览量、退出量统计"

}

最终效果如下:

69d9fcb3cfc84e619e42279b59d14cc4.png

demo所使用的插件下载:

PS:用这个方法同样可以实现其他图表效果,如:折线图、柱状图等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值