echart中tooltip自動展示代碼示例
引入js文件
import {autoHover} from ‘./tooltip’
/**
* echarts tooltip輪播
* @param chart ECharts實(shí)例
* @param chartOption echarts的配置信息
* @param options object 選項(xiàng)
* {
* interval 輪播時(shí)間間隔,單位毫秒,默認(rèn)為3000
* true表示循環(huán)所有series的tooltip,false則顯示指定seriesIndex的tooltip
* seriesIndex 默認(rèn)為0,指定某個(gè)系列(option中的series索引)循環(huán)顯示tooltip,
* 當(dāng)loopSeries為true時(shí),從seriesIndex系列開始執(zhí)行。
* }
* @returns {{clearLoop: clearLoop}|undefined}
*/
export function autoHover(myChart, option, num, time) {
var defaultData = { // 設(shè)置默認(rèn)值
time: 3000,
num: 14
};
if (!time) {
time = defaultData.time;
}
if (!num) {
num = defaultData.num;
}
var count = 0;
var timeTicket = 0;
// 清除定時(shí)器
function clearLoop() {
if (timeTicket) {
clearInterval(timeTicket);
timeTicket = 0;
}
myChart.off('mousemove', stopAutoShow);
myChart.getZr().off('mousemove', zRenderMouseMove);
// myChart.getZr().off('globalout', zRenderGlobalOut);
}
// 關(guān)閉輪播
function stopAutoShow() {
if (timeTicket) {
clearInterval(timeTicket);
timeTicket = 0;
}
}
function zRenderMouseMove(param) {
if (param.event) {
// 阻止canvas上的鼠標(biāo)移動事件冒泡
// param.event.cancelBubble = true;
}
stopAutoShow();
}
timeTicket && clearInterval(timeTicket);
timeTicket = setInterval(function() {
myChart.dispatchAction({
type: 'downplay',
seriesIndex: 0 // serieIndex的索引值 可以觸發(fā)多個(gè)
});
myChart.dispatchAction({
type: 'highlight',
seriesIndex: 0,
dataIndex: count
});
myChart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: count
});
count++;
if (count >= num) {
count = 0;
}
}, time);
myChart.on('mouseover', function(params) {
clearInterval(timeTicket);
myChart.dispatchAction({
type: 'downplay',
seriesIndex: 0
});
myChart.dispatchAction({
type: 'highlight',
seriesIndex: 0,
dataIndex: params.dataIndex
});
myChart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: params.dataIndex
});
});
myChart.on('mouseout', function() {
timeTicket && clearInterval(timeTicket);
timeTicket = setInterval(function() {
myChart.dispatchAction({
type: 'downplay',
seriesIndex: 0 // serieIndex的索引值 可以觸發(fā)多個(gè)
});
myChart.dispatchAction({
type: 'highlight',
seriesIndex: 0,
dataIndex: count
});
myChart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: count
});
count++;
if (count >= 14) {
count = 0;
}
}, 3000);
});
return {
clearLoop: clearLoop
};
}在echart里注冊使用
myChart.setOption(option, true);
this.tootipTimer && this.tootipTimer.clearLoop(); // this.tootipTimer 在data里定義
this.tootipTimer = 0;
this.tootipTimer = autoHover(myChart, option, 8, 3000);附:echart tooltip自定義
ECharts 提供了 tooltip 的自定義功能,可以通過 formatter 函數(shù)來自定義 tooltip 的內(nèi)容和樣式。
下面是一個(gè)簡單的示例:
option = {
// ... 其他配置項(xiàng)
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
crossStyle: {
color: '#999'
}
},
formatter: function (params) {
// 自定義 tooltip 的內(nèi)容和樣式
return params[0].name + '<br/>' +
params[0].seriesName + ' : ' + params[0].value + '<br/>' +
params[1].seriesName + ' : ' + params[1].value + '<br/>' +
params[2].seriesName + ' : ' + params[2].value + '<br/>' +
params[3].seriesName + ' : ' + params[3].value + '<br/>'
}
},
// ... 其他配置項(xiàng)
series: [
{
name:'郵件營銷',
type:'bar',
data:[120, 132, 101, 134, 90, 230, 210]
},
{
name:'聯(lián)盟廣告',
type:'bar',
data:[220, 182, 191, 234, 290, 330, 310]
},
{
name:'視頻廣告',
type:'bar',
data:[150, 232, 201, 154, 190, 330, 410]
},
{
name:'直接訪問',
type:'bar',
data:[320, 332, 301, 334, 390, 330, 320]
}
]
};在上面的示例中,通過 formatter 函數(shù)來自定義 tooltip 的內(nèi)容和樣式。在這個(gè)函數(shù)中,我們可以通過 params 參數(shù)獲取到當(dāng)前 tooltip 中所展示的數(shù)據(jù),從而可以自定義 tooltip 的樣式和展示內(nèi)容。
需要注意的是,formatter 函數(shù)的返回值必須是一個(gè)字符串。在字符串中,可以使用 HTML 標(biāo)簽來控制 tooltip 的樣式,比如使用 <br/> 來換行。
總結(jié)
到此這篇關(guān)于echart中tooltip自動展示的文章就介紹到這了,更多相關(guān)echart tooltip自動展示內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript引用類型Object常見用法實(shí)例分析
這篇文章主要介紹了JavaScript引用類型Object常見用法,簡單描述了javascript基本數(shù)據(jù)類型,并結(jié)合實(shí)例形式分析了引用類型Object基本創(chuàng)建、賦值、訪問屬性等基本操作技巧,需要的朋友可以參考下2018-08-08
js實(shí)現(xiàn)密碼強(qiáng)度檢測【附示例】
下面小編就為大家?guī)硪黄猨s實(shí)現(xiàn)密碼強(qiáng)度檢測【附示例】。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-03-03
關(guān)聯(lián)的Select,可以支持客戶端動態(tài)更新
關(guān)聯(lián)的Select,可以支持客戶端動態(tài)更新...2006-09-09
Typescript的三種運(yùn)行方式(小結(jié))
這篇文章主要介紹了Typescript的三種運(yùn)行方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
微信小程序中時(shí)間戳和日期的相互轉(zhuǎn)換問題
這篇文章主要介紹了微信小程序中時(shí)間戳和日期的相互轉(zhuǎn)換問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
JavaScript四種調(diào)用模式和this示例介紹
JavaScript調(diào)用時(shí)除了聲明時(shí)定義的形參外,每個(gè)函數(shù)接受兩個(gè)附加參數(shù):this 和arguments,下面為大家介紹下JavaScript四種調(diào)用模式和this2014-01-01
使用JavaScript解決網(wǎng)頁圖片拉伸問題(推薦)
本文給大家介紹使用javascript解決網(wǎng)頁圖片拉伸問題,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-11-11
完美解決mui框架off-canvas側(cè)滑超出部分隱藏?zé)o法滾動的問題
下面小編就為大家分享一篇完美解決mui框架off-canvas側(cè)滑超出部分隱藏?zé)o法滾動的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01

