wxml
<view class="container"> <!-- 导航栏 --> <view class="navbar"> <block wx:for="{{navbarTitle}}" wx:key="index"> <view class="navbar-item {{navbarActiveIndex === index ? 'navbar-item-active' : ''}}" data-navbar-index="{{index}}" catchtap="onNavBarTap"> <text>{{item}}</text> </view> </block> </view> <view class="movie-content-wrapper"> <swiper style="height:100%;width:100;" current="{{navbarActiveIndex}}" bindanimationfinish="onBindAnimationFinish"> <swiper-item style="height:100%;width:100;" wx:for="{{navbarTitle}}" wx:key="index"> <scroll-view scroll-y="{{true}}" style="height:100%;width:100;"> {{item}} <ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas> </scroll-view> </swiper-item> </swiper> </view> </view>
js
// pages/userConsole/userConsole.js import * as echarts from '../../ec-canvas/echarts'; let chart = null; function initChart(canvas, width, height, dpr) { chart = echarts.init(canvas, null, { width: width, height: height, devicePixelRatio: dpr // new }); canvas.setChart(chart); var option = { color: ['#37a2da', '#32c5e9', '#67e0e3'], tooltip: { trigger: 'axis', axisPointer: { // 坐标轴指示器,坐标轴触发有效 type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' }, confine: true }, legend: { data: ['热度', '正面', '负面'] }, grid: { left: 20, right: 20, bottom: 15, top: 40, containLabel: true }, xAxis: [ { type: 'value', axisLine: { lineStyle: { color: '#999' } }, axisLabel: { color: '#666' } } ], yAxis: [ { type: 'category', axisTick: { show: false }, data: ['汽车之家', '今日头条', '百度贴吧', '一点资讯', '微信', '微博', '知乎'], axisLine: { lineStyle: { color: '#999' } }, axisLabel: { color: '#666' } } ], series: [ { name: '热度', type: 'bar', label: { normal: { show: true, position: 'inside' } }, data: [300, 270, 340, 344, 300, 320, 310], itemStyle: { // emphasis: { // color: '#37a2da' // } } }, { name: '正面', type: 'bar', stack: '总量', label: { normal: { show: true } }, data: [120, 102, 141, 174, 190, 250, 220], itemStyle: { // emphasis: { // color: '#32c5e9' // } } }, { name: '负面', type: 'bar', stack: '总量', label: { normal: { show: true, position: 'left' } }, data: [-20, -32, -21, -34, -90, -130, -110], itemStyle: { // emphasis: { // color: '#67e0e3' // } } } ] }; chart.setOption(option); return chart; } Page({ onShareAppMessage: function (res) { return { title: 'ECharts 可以在微信小程序中使用啦!', path: '/pages/index/index', success: function () { }, fail: function () { } } }, data: { ec: { onInit: initChart }, navbarActiveIndex: 0, navbarTitle: [ "热映", "Top250", "口碑榜", "新片榜" ] }, /** * 点击导航栏 */ onNavBarTap: function (event) { // 获取点击的navbar的index let navbarTapIndex = event.currentTarget.dataset.navbarIndex // 设置data属性中的navbarActiveIndex为当前点击的navbar this.setData({ navbarActiveIndex: navbarTapIndex }) }, /** * */ onBindAnimationFinish: function ({detail}) { // 设置data属性中的navbarActiveIndex为当前点击的navbar this.setData({ navbarActiveIndex: detail.current }) }, onReady() { setTimeout(function () { // 获取 chart 实例的方式 // console.log(chart) }, 2000); } });
json
{ "usingComponents": { "ec-canvas": "../../ec-canvas/ec-canvas" } }
wxss
/**testEcharts**/ ec-canvas { width: 100%; height: 100%; } .container { position: absolute; top: 0; bottom: 0; left: 0; right: 0; display: flex; flex-direction: column; } .navbar{ display: flex; position: absolute; left: 0; top: 0; z-index: 500; width: 100%; height: 50px; flex-direction: row; text-align: center; color: #A8A8A8; font-size: 15px; box-sizing: border-box; background-color: #FFF; border-bottom: 1rpx solid #DFDFDF; } .navbar-item{ flex: 1; padding: 26rpx 0px; } .navbar-item-active{ transition: all 0.3s; border-bottom: 10rpx solid #494949; color: #494949; } .movie-content-wrapper{ padding-top: 50px; height: 100%; width: 100%; color: #494949; }
- THE END -
最后修改:2020年6月7日