vue使用highcharts自定義圖例點擊事件
更新時間:2022年03月28日 14:27:21 作者:lvan找不到bug
這篇文章主要為大家詳細介紹了vue使用highcharts自定義圖例點擊事件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了vue使用highcharts自定義圖例點擊事件的具體代碼,供大家參考,具體內容如下
highcharts圖表自帶的圖例點擊事件是:點擊某個顯示/隱藏的圖例,該圖例對應的series就隱藏/顯示。
需求方這邊的需求是:
1、默認全部展示所有分類
2、點擊某一個分類,則隱藏其他分類
3、如果再次點擊這個分類,則全部顯示
4、如果點擊了A,再點擊了B,則顯示A和B
于是乎只能自定義圖例點擊事件。
// 數據列展示/隱藏的邏輯函數
getVisibleMode(series, serieName) {
? ? var allVisible = true
? ? var allHidden = true
? ? for (let i = 0; i < series.length; i++) {
? ? ? ? if (series[i].name === serieName)
? ? ? ? ? ? continue
? ? ? ? // &= 按位運算用法:a &= b 等價于 a = a & b (值為 0 / 1)
? ? ? ? allVisible &= series[i].visible
? ? ? ? allHidden &= (!series[i].visible)
? ? }
? ? if (allVisible && !allHidden)
? ? ? ? return 'all-visible'
? ? if (allHidden && !allVisible)
? ? ? ? return 'all-hidden'
? ? return 'other-cases'
},
// 繪制圖表的方法
drawChart(id) {
? ? let that = this // 記錄this指向,以便圖例點擊事件中調用方法
? ? Hightcharts.chart(id, {
? ? ? ? ...,
? ? ? ? // hightcharts對應的配置項
? ? ? ? plotOptions : {
? ? ? ? ? ? series: {
? ? ? ? ? ? ? ? events : {
? ? ? ? ? ? ? ? ? ? // 圖例點擊事件
? ? ? ? ? ? ? ? ? ? legendItemClick : function (e) {
? ? ? ? ? ? ? ? ? ? ? ? var series = this.chart.series
? ? ? ? ? ? ? ? ? ? ? ? var mode = that.getVisibleMode(series, this.name)
? ? ? ? ? ? ? ? ? ? ? ? var enableDefault = false
? ? ? ? ? ? ? ? ? ? ? ? if (!this.visible) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? enableDefault = true
? ? ? ? ? ? ? ? ? ? ? ? } else if (mode === 'all-visible') {
? ? ? ? ? ? ? ? ? ? ? ? ? ? series.forEach((serie, k) => {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? serie.hide()
? ? ? ? ? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? ? ? ? ? ? ? this.show()
? ? ? ? ? ? ? ? ? ? ? ? } else if (mode === 'all-hidden') {
? ? ? ? ? ? ? ? ? ? ? ? ? ? series.forEach((serie, k) => {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? serie.show()
? ? ? ? ? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? enableDefault = true
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? return enableDefault
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? })
}代碼在vue環(huán)境下運行,需要注意圖例點擊事件方法中this指向問題。
預覽效果圖:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Vue多頁面配置打包性能優(yōu)化方式(解決加載包太大加載慢問題)
這篇文章主要介紹了Vue多頁面配置打包性能優(yōu)化方式(解決加載包太大加載慢問題),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01

