內容有點多,慢慢看~~
我的需求是:通過點擊坐標軸的任意位置,獲取當前位置的坐標,並賦值給x,y
關鍵js代碼:
var height = document.getElementById('hight');
var weight = document.getElementById('weight');
myChart.setOption(option); //關鍵
var ecConfig = echarts.config; //關鍵中的關鍵
function eConsole(param){
if(param.value.length > 1) {
height.innerText = param.value[0]+'cm';
weight.innerText = param.value[1]+'cm';
} else {
height.innerText = param.name+'cm';
weight.innerText = param.value+'cm';
}
}
//在這里做一個點擊事件的監聽,綁定的是eConsole方法
myChart.on(ecConfig.EVENT.CLICK, eConsole); //max關鍵
此外param參數包含的內容有:
param.seriesIndex:系列序號(series中當前圖形是第幾個圖形第幾個,從0開始計數)
param.dataIndex:數值序列(X軸上當前點是第幾個點,從0開始計數)
param.seriesName:legend名稱
param.name:X軸值
param.data:Y軸值
param.value:Y軸值
param.type:點擊事件均為click
實現的效果圖:
我想要實現的效果是點擊任意地方能獲取這個地方的坐標,但是並沒有實現這個最終效果。
在網上幾經搜查無果,后來仔細研究一一下Echart,發現自己走進了一個誤區,我們獲取的數據都是通過param,當我們點擊任意地方時只有這個地方在data中是存在的,才能通過param獲取。所以要實現點擊任意點獲取其坐標,只能在坐標中平鋪N多個點,也是在data中添加數以萬計的數據才行。unbelievable!amazing!
最后我也是通過這個的方法解決問題的。。。好蠢的方法。。。。網友有更好的方法歡迎評論~
附加幾個小知識點:
1. 改變點的顏色是這個地方改變,color: 'transparent'; //點變成透明色
2. Echart實現雙擊事件
Echart插件本身是沒有雙擊事件的,但是我們可以自己模擬一個雙擊事件,以下圖片是另外一個項目的圖片
在網上查找的時候看到有網友通過js的計時器通過時間差來觸發雙擊事件,可以是可以,但是有個問題,這里的時間差必須固定才行,而我們並不知道用戶什么時候才發生第二次點擊動作。所以我沒有采用這種方法,而是通過動態改變類名的形式來判斷單擊和雙擊事件
<p class="first_point mark_point"> <!--有mark_point,第一次點擊賦值給它的子元素--> <span class="img_x01"></span > , <span class="img_y01"></span >
</p> <p class="scon_point"> <span class="img_x02"></span > , <span class="img_y02"></span >
</p>
關鍵js代碼:
這里點擊任意地方獲取坐標也是用了上面的蠢方法,簡單粗暴啊!
效果圖
通過反復點擊測試這種方式來判斷單擊和雙擊事件是可行的,當然視情況而定。
歡迎網友指正提出更好的意見~~
作者:Aylson.Fu
出處:https://www.cnblogs.com/formybestlife/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。非常感謝~