91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現echarts地圖輪播高亮

發布時間:2021-08-21 09:03:49 來源:億速云 閱讀:325 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“如何實現echarts地圖輪播高亮”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何實現echarts地圖輪播高亮”這篇文章吧。

    toDoList

    •  簡單的準備一個地圖

    •  保存實例備用

    •  設置定時器

    •  設置鼠標移入移出事件

    just do it

    準備一個地圖

    首先準備一個簡簡單單的地圖,因為我在廣州所以就用廣東省的地圖啦~

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

    如何實現echarts地圖輪播高亮

    保存實例備用

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

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

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

    設置定時器輪播

    因為要設置輪播高亮,說白了就是給一個時間,固定多少多少時間亮一下然后提示框出來一下,現在默認大家已經設置好普通的鼠標移入高亮和提示框。

    如何實現echarts地圖輪播高亮

    首先設置一個定時器方法,然后在里面調用官方的高亮方法和提示框方法,在規定的時間內進行閃爍即可。

    ...
        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++;
                    // 當前下標高亮
                    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設置一個接收定時器的容器和一個index下標來代表是哪個城市高亮。

    在mapActive()中先獲取這個地圖所有城市的數量dataLength,因為dispatchAction是根據下標來進行高亮切換的如果我們的index數量大于城市數量他就不會顯示了,所有我們要控制inedx在所有城市數量以下。

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

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

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

    如何實現echarts地圖輪播高亮

    加入鼠標事件

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

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

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

    以上是“如何實現echarts地圖輪播高亮”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    虹口区| 大理市| 桂平市| 商都县| 锡林浩特市| 余姚市| 江都市| 东乡| 天水市| 泾源县| 渭南市| 株洲县| 东阿县| 怀柔区| 全州县| 资讯| 大姚县| 来凤县| 基隆市| 光山县| 尼木县| 安达市| 建湖县| 上犹县| 黄龙县| 塔城市| 徐州市| 凤阳县| 古丈县| 孟津县| 金山区| 新乡市| 明水县| 东至县| 通化县| 娱乐| 庄浪县| 博兴县| 股票| 沂水县| 怀来县|