解决echarts图表在element(el-tab)宽度不自适应的问题

echartselement(el-tab)宽度不是自适应的问题

问题

项目中有一个需求,就是有两个tab页,两个tab页面中都有echarts图表;在实现需求的过程中,默认显示的tab页图表宽高度显示正常,但是需要切换才能显示的tab页图表宽度不符合预期,如下图显示:

.chart{
	width: 100%;
	height: 200px;
}
  • 默认显示tab页的图表,显示是正常的
    默认显示tab页的图表,显示是正常的
  • 需要切换的tab页的图表,显示不正常
    需要切换的tab页的图表,显示不正常
    查看页面代码显示切换的tab页的图表宽度并不是100%,而是100px
    页面代码不对
    为什么都是同一个组件,一个显示正常另一个显示不正常呢?
    因为el-tab不显示的tab页样式有一个display: none的,这个属性使得echarts无法获取宽度,导致出错!

解决方法

  1. 设置固定宽度
  2. 监听el-tabactiveName,当前tab页显示的时候,重新resize图表
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
echarts 是一款非常流行的数据可视化工具,可以用来快速绘制各种图表。在 echarts 中添加 el-radio-button 可以用来实现图表中的单选按钮,具体操作步骤如下: 1. 安装 echartselement-ui 在项目中安装 echartselement-ui,可以通过以下命令进行安装: ``` npm install echarts --save npm install element-ui --save ``` 2. 引入 echartselement-ui 在需要使用 echarts 的页面中引入 echartselement-ui: ```javascript import echarts from 'echarts' import { RadioGroup, RadioButton } from 'element-ui' Vue.use(RadioGroup) Vue.use(RadioButton) ``` 3. 在图表中添加 el-radio-button 在图表的 option 中添加一个包含 el-radio-button 的组件: ```javascript { title: { text: '柱状图示例' }, tooltip: {}, legend: { data:['销量'] }, xAxis: { data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }], toolbox: { feature: { dataView: {show: true, readOnly: false}, magicType: {show: true, type: ['line', 'bar']}, restore: {show: true}, saveAsImage: {show: true} } }, // 添加 el-radio-button 组件 graphic: { type: 'group', left: 'center', top: 'bottom', children: [ { type: 'radioButtonGroup', id: 'bar-radio-group', left: 0, top: 0, children: [ { type: 'radioButton', id: 'bar-radio-1', value: 'bar', text: '柱状图', textStyle: { fontSize: 12 }, width: 70, height: 20, borderColor: '#000', backgroundColor: '#fff' }, { type: 'radioButton', id: 'bar-radio-2', value: 'line', text: '折线图', textStyle: { fontSize: 12 }, width: 70, height: 20, borderColor: '#000', backgroundColor: '#fff' } ], onChange(idx) { if (idx === 0) { chart.setOption({ series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }] }) } else if (idx === 1) { chart.setOption({ series: [{ name: '销量', type: 'line', data: [5, 20, 36, 10, 10, 20] }] }) } } } ] } } ``` 4. 相关问题: 1. 如何在 echarts 中添加其他 element-ui 组件? 2. 如何使用 echarts 绘制折线图? 3. 如何使用 echarts 绘制饼图?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值