最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章搞定echarts地圖輪播高亮

 更新時間:2021年08月20日 12:47:00   作者:快跑啊小盧_  
ECharts是一個使用 JavaScript 實(shí)現(xiàn)的開源可視化庫,涵蓋各行業(yè)圖表,滿足各種需求,下面這篇文章主要給大家介紹了關(guān)于echarts地圖輪播高亮的相關(guān)資料,需要的朋友可以參考下

前言

這兩天忙著做公司的超級數(shù)據(jù)大屏,實(shí)在擠不出時間連續(xù)更文。

但是更文活動都堅持這么久了也不想停止更新,那我就分享一下在工作中經(jīng)常用到的echarts地圖輪播高亮吧。

技術(shù)棧用的是vue2.x 相信效果大家已經(jīng)清楚了那我們就開干吧。

toDoList

  •  簡單的準(zhǔn)備一個地圖
  •  保存實(shí)例備用
  •  設(shè)置定時器
  •  設(shè)置鼠標(biāo)移入移出事件

just do it

準(zhǔn)備一個地圖

首先準(zhǔn)備一個簡簡單單的地圖,因?yàn)槲以趶V州所以就用廣東省的地圖啦~

怎么在echarts使用地圖我就不說了看看文檔然后把對應(yīng)的地圖json導(dǎo)入就可以了,相信大家也會。對了有人問到我在哪里找地圖json文件,我們可以在DataV.GeoAtlas查詢我們想要找的城市然后選擇Json文件下載就可以啦。

保存實(shí)例備用

首先我們要知道想讓地圖輪播高亮就需要用到eharts自帶的dispatchActionAPI,而這個API是要用eharts實(shí)例去使用的,所以在vue中我們要將一開始地圖初始化的實(shí)例給保存下來。

<template>
    <div ref="myChart" id="myChart" class="gzMap"></div>
</template>
...
    data () {
        return {
                charts: '',
                option:{
                    ...
                }
        };
    },
...
    mounted () {
        this.$echarts.registerMap('廣東', gzData);//獲取地圖數(shù)據(jù)
        this.setMyEchart(); // 頁面掛載完成后執(zhí)行
    },
    methods:{
        setMyEchart () {
            const myChart = this.$refs.myChart; // 通過ref獲取到DOM節(jié)點(diǎn)
            if (myChart) {
                const thisChart = this.$echarts.init(myChart); // 利用原型Echarts的初始化
                this.charts = thisChart;//保存實(shí)例
                thisChart.setOption(this.option); // 將編寫好的配置項掛載到Echarts上
            }
        },
    }
...

我們在一開始初始化echarts的時候講實(shí)例保存起來等下來使用,其余的配置大家可以自行去配,源碼會放在文章底下,有興趣的話可以拿走。

設(shè)置定時器輪播

因?yàn)橐O(shè)置輪播高亮,說白了就是給一個時間,固定多少多少時間亮一下然后提示框出來一下,現(xiàn)在默認(rèn)大家已經(jīng)設(shè)置好普通的鼠標(biāo)移入高亮和提示框。

首先設(shè)置一個定時器方法,然后在里面調(diào)用官方的高亮方法和提示框方法,在規(guī)定的時間內(nèi)進(jìn)行閃爍即可。

...
    data () {
        return {
                mTime: '',
                charts: '',
                index: -1,
                option:{
                    ...
                }
        };
    },
...
    methods:{
        setMyEchart () {
            ...
            this.mapActive();
            ...
        },
        mapActive () {
            const dataLength = gzData.features.length;
            // 用定時器控制高亮
            this.mTime = setInterval(() => {
                // 清除之前的高亮
                this.charts.dispatchAction({
                    type: 'downplay',
                    seriesIndex: 0,
                    dataIndex: this.index
                });
                this.index++;
                // 當(dāng)前下標(biāo)高亮
                this.charts.dispatchAction({
                    type: 'highlight',
                    seriesIndex: 0,
                    dataIndex: this.index
                });
                this.charts.dispatchAction({
                    type: 'showTip',
                    seriesIndex: 0,
                    dataIndex: this.index
                });
                if (this.index > dataLength) {
                    this.index = 0;
                }
            }, 2000);
        },
    }

我們首先在data設(shè)置一個接收定時器的容器和一個index下標(biāo)來代表是哪個城市高亮。

在mapActive()中先獲取這個地圖所有城市的數(shù)量dataLength,因?yàn)閐ispatchAction是根據(jù)下標(biāo)來進(jìn)行高亮切換的如果我們的index數(shù)量大于城市數(shù)量他就不會顯示了,所有我們要控制inedx在所有城市數(shù)量以下。

設(shè)置定時器里面先清除之前高亮的城市,如果不清除的話就會一下子多個高亮了,不是我們想要的效果。

再使用我們的實(shí)例調(diào)用eharts的方法來實(shí)現(xiàn)高亮和提示框彈出,其中dispatchAction接收幾個參數(shù),type表示你要呈現(xiàn)的類型,比如高亮或者提示框,具體的可以在官網(wǎng)看到。

在最后我們再判斷一下index是否超出城市dataLength數(shù)量,如果是則清零重新來過,至此我們的一個輪播高亮就完成了。

加入鼠標(biāo)事件

當(dāng)然我們不能就這樣結(jié)束,還要加一些事件效果,比如說當(dāng)我們鼠標(biāo)移動到地圖里面時會停止輪播只高亮我們選擇的那個城市

    methods:{
        setMyEchart () {
            ...
            this.mapActive();
            ...
        },
        mouseEvents () {
            // 鼠標(biāo)劃入
            this.charts.on('mouseover', () => {
                // 停止定時器,清除之前的高亮
                clearInterval(this.mTime);
                this.mTime = '';
                console.log(this.mTime);
                this.charts.dispatchAction({
                        type: 'downplay',
                        seriesIndex: 0,
                        dataIndex: this.index
                });
            });
            // 鼠標(biāo)劃出重新定時器開始
            this.charts.on('mouseout', () => {
                this.mapActive();
            });
        },
      }

可以看到我們給鼠標(biāo)劃入加入了事件,當(dāng)我們鼠標(biāo)移動到地圖上時就清除之前對應(yīng)index的城市,當(dāng)然僅僅加入鼠標(biāo)劃入也是不行的,這樣當(dāng)我們鼠標(biāo)滑動一次他就不會繼續(xù)輪播高亮了,我們還需要加多一個鼠標(biāo)劃出事件,讓定時器重新開啟。

至此一個簡單的高亮輪播就完成了,具體源碼我放在這里。

總結(jié)

到此這篇關(guān)于echarts地圖輪播高亮的文章就介紹到這了,更多相關(guān)echarts地圖輪播高亮內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript直播評論發(fā)彈幕切圖功能點(diǎn)集合效果代碼

    JavaScript直播評論發(fā)彈幕切圖功能點(diǎn)集合效果代碼

    這篇文章主要介紹了JavaScript直播評論發(fā)彈幕切圖功能點(diǎn)集合效果代碼的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • JSQL  一個 web DB 的封裝

    JSQL  一個 web DB 的封裝

    當(dāng)然隨著HTML5的普及,web DB 已經(jīng)是大勢所趨了
    2010-05-05
  • 支付寶小程序tabbar底部導(dǎo)航

    支付寶小程序tabbar底部導(dǎo)航

    這篇文章主要為大家詳細(xì)介紹了支付寶小程序重寫tabbar底部導(dǎo)航,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • js querySelector和getElementById通過id獲取元素的區(qū)別

    js querySelector和getElementById通過id獲取元素的區(qū)別

    這是sina同事xiaoniu發(fā)現(xiàn)的,querySelector和getElementById通過id獲取元素的區(qū)別
    2012-04-04
  • javascript檢測兩個數(shù)組是否相似

    javascript檢測兩個數(shù)組是否相似

    Javascript不能直接用==或者===來判斷兩個數(shù)組是否相等,無論是相等還是全等都不行,要判斷JS中的兩個數(shù)組是否相同,需要先將數(shù)組轉(zhuǎn)換為字符串,再作比較。
    2015-05-05
  • WebSocket連接頻繁斷開的問題及解決方案

    WebSocket連接頻繁斷開的問題及解決方案

    隨著實(shí)時應(yīng)用的普及,如在線聊天、實(shí)時數(shù)據(jù)監(jiān)控和協(xié)作工具,WebSocket 成為了實(shí)現(xiàn)雙向通信的重要技術(shù),然而,在實(shí)際開發(fā)中,開發(fā)者常常會遇到 WebSocket 連接頻繁斷開的情況,本文將深入探討 WebSocket 連接頻繁斷開的常見原因,并提供詳細(xì)的解決方案和最佳實(shí)踐
    2025-02-02
  • HTML+CSS+JavaScript做女朋友版的刮刮樂(一看就會)

    HTML+CSS+JavaScript做女朋友版的刮刮樂(一看就會)

    這篇文章主要介紹了HTML+CSS+JavaScript做女朋友版的刮刮樂(一看就會)本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • javascript二維數(shù)組和對象的深拷貝與淺拷貝實(shí)例分析

    javascript二維數(shù)組和對象的深拷貝與淺拷貝實(shí)例分析

    這篇文章主要介紹了javascript二維數(shù)組和對象的深拷貝與淺拷貝,結(jié)合實(shí)例形式分析了JavaScript針對數(shù)組與對象的深拷貝及淺拷貝相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • JavaScript 七大技巧(二)

    JavaScript 七大技巧(二)

    我寫JavaScript代碼已經(jīng)很久了,都記不起是什么年代開始的了。本文給大家分享javascript七大技巧(二),對javascript技巧相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • 顏色漸變效果

    顏色漸變效果

    [藍(lán)色]顏色漸變效果...
    2006-07-07

最新評論

石狮市| 通渭县| 英超| 咸丰县| 崇左市| 于都县| 长泰县| 克东县| 清丰县| 二手房| 淮北市| 平乡县| 来凤县| 波密县| 涡阳县| 柳江县| 永胜县| 盐津县| 潼关县| 旬邑县| 青海省| 巴东县| 治县。| 淮南市| 兴安县| 无为县| 龙南县| 邮箱| 湟中县| 临洮县| 茶陵县| 盱眙县| 崇礼县| 蒙山县| 临安市| 延长县| 临颍县| 视频| 偃师市| 手游| 昌邑市|