Ionic3实现选项卡切换可以重新加载echarts
2017-12-18 17:39
246 查看
要求
选项卡每切换一次,就加载对应的一个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(); } }
原创文章,欢迎转载,转载请注明出处!
相关文章推荐
- TabHost+ViewPager实现 点击选项卡和滑动界面都可以切换页面
- 重写系统viewpager 实现每次切换每个页面都重新加载
- 用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换操作
- ionic实现可滑动的tab选项卡切换效果
- ionic实现可滑动的tab选项卡切换效果
- 使用LinearLayout+TextView实现底部导航栏,重复切换页面不会重新加载
- 使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
- 多个fragment切换,而不重新加载数据的实现
- 实现底部导航栏及切换tab重新加载的问题解决
- ionic组件ion-tabs选项卡切换效果实例
- js实现Tab选项卡切换效果
- 横竖屏切换时不重新加载onCreate
- 选项卡选中状态的实现及其多个选项时按钮的状态切换((每个选项其实都是按钮))
- 使用javascript实现简单的选项卡切换效果
- Android实现连续并排的若干个TextView单击改变背景颜色达到选项卡Tab栏切换效果
- 利用radio实现纯css选项卡切换
- Android利用LayerDrawable实现各大App应用市场上选项卡切换效果
- JS实现的选项卡切换
- 通过CSS切换图片效果,点击这个图片可以实现连接功能,这里的图片在一张大图片中,每个并要切换的图片没有切换,通过disposition定位的方式做
- 使用javascript实现简单的选项卡切换