基于Ionic3实现选项卡切换并重新加载echarts
编程学习 2021-07-04 14:06www.dzhlxh.cn编程入门
这篇文章主要介绍了基于Ionic3实现选项卡切换并重新加载echarts,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
要求
选项卡每切换一次,就加载对应的一个echarts 图,要有一开始的动画效果
效果如下:
注意点
1、echarts要想每次都能重新加载,需要移除"_echarts_instance_"属性,否则一切换选项卡,就再也加载不出来了
2、在ts 中获取html 页面元素,不能写在构造方法里,应该写在ionViewDidEnter()方法里
3、选项卡<ion-segment> 不要搭配[ngSwitch] 的方式,因为这种情况下,只能获取当前选项卡中的元素,未选中的选项卡里的元素获取不到,在第2步骤ionViewDidEnter() 方法里自然也是获取不到。应当搭配(ionChange)使用方式
4、不能直接将chart作为全局变量,这样的话第二次加载就没有动画效果了
献上代码
html文件
<ion-header>
<ion-navbar>
<ion-title>区域</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-segment [(ngModel)]="choice" (ionChange)="segmentChanged($event)">
<ion-segment-button value="choice1">
省份增速排名
</ion-segment-button>
<ion-segment-button value="choice2">
市州增速排名
</ion-segment-button>
<ion-segment-button value="choice3">
全省走势
</ion-segment-button>
<ion-segment-button value="choice4">
市州占比
</ion-segment-button>
</ion-segment>
<div id="chartContainer" style="width: 100%; height: 300px;"></div>
</ion-content>
ts文件
import {Component} from '@angular/core';
import * as echarts from 'echarts';
@Component({
selector: 'page-data-area',
templateUrl: 'area.html'
})
export class DataAreaPage {
choice: string = "choice1";
ec: any = echarts;
chartContainer: any;
constructor() {
}
clickChart1() {
const chart1 = this.ec.init(this.chartContainer);
chart1.setOption({
series: {
type: 'pie',
data: [{
name: 'A',
value: 10
}, {
name: 'B',
value: 20
}, {
name: 'C',
value: 30
}, {
name: 'D',
value: 40
}]
}
}, true);
this.chartContainer.removeAttribute("_echarts_instance_");
}
clickChart2() {
const chart2 = this.ec.init(this.chartContainer);
chart2.setOption({
series: {
type: 'pie',
data: [{
name: 'A',
value: 10
}, {
name: 'B',
value: 20
}, {
name: 'C',
value: 30
}]
}
}, true);
this.chartContainer.removeAttribute("_echarts_instance_");
}
clickChart3() {
const chart3 = this.ec.init(this.chartContainer);
chart3.setOption({
series: {
type: 'pie',
data: [{
name: 'A',
value: 10
}, {
name: 'B',
value: 20
}, {
name: 'C',
value: 30
}, {
name: 'D',
value: 40
}, {
name: 'E',
value: 50
}]
}
}, true);
this.chartContainer.removeAttribute("_echarts_instance_");
}
clickChart4() {
const chart4 = this.ec.init(this.chartContainer);
chart4.setOption({
series: {
type: 'pie',
data: [{
name: 'A',
value: 10
}, {
name: 'B',
value: 20
}, {
name: 'C',
value: 30
}, {
name: 'D',
value: 40
}, {
name: 'E',
value: 50
}, {
name: 'F',
value: 60
}]
}
}, true);
this.chartContainer.removeAttribute("_echarts_instance_");
}
segmentChanged(e) {
if (e.value == "choice1") {
this.clickChart1();
} else if (e.value == "choice2") {
this.clickChart2();
} else if (e.value == "choice3") {
this.clickChart3();
} else if (e.value == "choice4") {
this.clickChart4();
}
}
ionViewDidEnter() {
this.chartContainer = document.getElementById('chartContainer');
this.clickChart1();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
上一篇:Openlayers实现点闪烁扩散效果
下一篇:vue3.0生命周期的示例代码
编程语言
- ThinkPad 笔记本如何调节LCD屏幕亮度
- Dreamweaver制作网页打开特效教程
- Win10 Mobile 10586升级后无限重启怎么办 硬重启帮您
- Win8系统提示音频设备有问题有一个或多个音频服
- Xbox One版Win10首个预览版9月份发布
- 如何在textarea文本输入区内实现换行
- Win10 Build 9901系统更新 预览版新版本下载
- McAfee Framework存在远程格式串处理漏洞
- Win10家庭版今日(7月30)正式在中国官方商城开卖
- Win10 Mobile预览版更新完10536.1000后才收到10536.100
- Win10 RS2更新了什么-Win10 RS2最终版本号1704首曝
- Windows7如何查看回收站对应的文件夹有哪些方法
- Win10让Charms栏回归桌面的方法教程
- 取消Windows XP系统开机启动画面的小技巧
- win8系统怎么下载安装USB百兆网卡?
- XP系统下磁盘空间变少了怎么办?XP系统磁盘空间