经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » 微信小程序 » 查看文章
解决微信小程序的wx-charts插件tab切换时的显示会出现位置移动问题-tab切换时,图表显示错乱-实现滑动tab
来源:cnblogs  作者:达叔小生  时间:2018/11/27 10:01:24  对本文有异议

解决Echarts在微信小程序tab切换时的显示会出现位置移动问题

tab切换时,图表显示错乱

  1. <canvas class="kcanvas" canvas-id="ringCanvas" hidden="{{currentTab == 1}}"></canvas>
  1. <view hidden="{{currentTab !== 1}}" id="one" class="currentPage">
  2. <view class="containerSales" wx: if="{{currentTab === 1}}">
  3. <ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ecSales}}"></ec-canvas>
  4. </view>
  5. </view>
  1. ring chart
  2. new wxCharts({
  3. canvasId: 'ringCanvas',
  4. type: 'ring',
  5. series: [{
  6. name: '成交量1',
  7. data: 15,
  8. }, {
  9. name: '成交量2',
  10. data: 35,
  11. }, {
  12. name: '成交量3',
  13. data: 78,
  14. }, {
  15. name: '成交量4',
  16. data: 63,
  17. }],
  18. width: 320,
  19. height: 200,
  20. dataLabel: false
  21. });

在这里插入图片描述

js当中使用require引入即可:

  1. let Charts = require('./../../utils/wxcharts.js');

一般以iPhone6为标准进行设计

  1. /* 例如设计图尺寸为320 x 300 */
  2. .canvas {
  3. width: 640px;
  4. height: 600px;
  5. transform: scale(0.5)
  6. }
  1. new Charts({
  2. animation: true,
  3. canvasId: 'canvas5',
  4. type: 'ring',
  5. extra: {
  6. ringWidth: 10,//圆环的宽度
  7. pie: {
  8. offsetAngle: -45//圆环的角度
  9. }
  10. },
  11. title: {
  12. name: '70%',
  13. color: '#7cb5ec',
  14. fontSize: 25
  15. },
  16. subtitle: {
  17. name: '收益率',
  18. color: '#666666',
  19. fontSize: 15
  20. },
  21. series: [{
  22. name: '成交量1',
  23. data: 15,
  24. stroke: false
  25. }, {
  26. name: '成交量2',
  27. data: 35,
  28. stroke: false
  29. }, {
  30. name: '成交量3',
  31. data: 78,
  32. stroke: false
  33. }, {
  34. name: '成交量4',
  35. data: 63,
  36. stroke: false
  37. }],
  38. disablePieStroke: true,
  39. width: 640,
  40. height: 200,
  41. dataLabel: true,
  42. legend: false,
  43. padding: 0
  44. });

在这里插入图片描述

  1. /* 环形 */
  2. .canvas {
  3. z-index: 1;
  4. position: absolute;
  5. left: 32px;
  6. top: 60px;
  7. height: 350rpx;
  8. }
  1. new wxCharts({
  2. canvasId: 'ringCanvas',
  3. type: 'ring',
  4. legend: false,
  5. extra: {
  6. ringWidth: 15, //圆环的宽度
  7. pie: {
  8. offsetAngle: -45 //圆环的角度
  9. }
  10. },
  11. series: [{
  12. data: res.data.data.normalNum,
  13. }, {
  14. data: res.data.data.beLateNum,
  15. }, {
  16. data: res.data.data.leaveNum,
  17. }, {
  18. data: res.data.data.uncheckedNum,
  19. }],
  20. width: 320,
  21. height: 200,
  22. dataLabel: false
  23. });
  1. switchNav: function(event) {
  2. var cur = event.currentTarget.dataset.current;
  3. if (this.data.currentTab == cur) { return false; }
  4. else {
  5. this.setData({
  6. currentTab: cur
  7. })
  8. }
  9. if(cur==1){
  10. this.setData({
  11. init_datas: nz_data,
  12. currentTab1: 1
  13. })
  14. var tmp_datas = this.data.init_datas;
  15. console.dir(tmp_datas);
  16. this.setData({
  17. nz_datas: tmp_datas,
  18. class:1
  19. })
  20. }
  21. if(cur==2){
  22. this.setData({
  23. init_datas1: man_data,
  24. currentTab1: 1
  25. })
  26. var tmp_datas = this.data.init_datas1;
  27. console.dir(tmp_datas);
  28. this.setData({
  29. nz_datas: tmp_datas,
  30. class:2
  31. })
  32. }
  33. },
  34. switchNav1: function (event) {
  35. var cur = event.currentTarget.dataset.curr;
  36. console.log("switchNav1_curr="+cur);
  37. console.log("class=" + this.data.class);
  38. if (this.data.currentTab1 == cur) { return false; }
  39. else {
  40. this.setData({
  41. currentTab1: cur
  42. })
  43. }
  44. if(cur==1){
  45. if(this.data.class==1){
  46. var tmp_datas = this.data.init_datas;
  47. this.setData({
  48. nz_datas: tmp_datas
  49. })
  50. }
  51. if (this.data.class == 2) {
  52. var tmp_datas = this.data.init_datas1;
  53. this.setData({
  54. nz_datas: tmp_datas
  55. })
  56. }
  57. }

实现滑动tab

  1. <view>
  2. <view class="swiper-tab">
  3. <view class="swiper-tab-list {{tab==0 ? 'on' : ''}}" data-current="0" bindtap="tab_click">图文</view>
  4. <view class="swiper-tab-list {{tab==1 ? 'on' : ''}}" data-current="1" bindtap="tab_click">产品</view>
  5. </view>
  6. <swiper current="{{tab}}" class="swiper-box" duration="300" style="height:{{winHeight - 31}}px" bindchange="tab_slide">
  7. <swiper-item>
  8. 图文
  9. </swiper-item>
  10. <swiper-item>
  11. 产品
  12. </swiper-item>
  13. </swiper>
  14. </view>
  1. Page({
  2. data: {
  3. tab: 0
  4. },
  5. tab_slide: function (e) {//滑动切换tab
  6. var that = this;
  7. that.setData({ tab: e.detail.current });
  8. },
  9. tab_click: function (e) {//点击tab切换
  10. var that = this;
  11. if (that.data.tab === e.target.dataset.current) {
  12. return false;
  13. } else {
  14. that.setData({
  15. tab: e.target.dataset.current
  16. })
  17. }
  18. },
  19. })
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号