2015-04-14 61 views
0

有沒有辦法將重點放在chart.js中的圖表上? 就像他們會變得更大或在盤旋時變得可見一樣?強調Chart.js中的一個點

我正在嘗試構建一個固定的工具提示,您將不斷捕獲點徘徊,並在畫布上單擊時捕捉點擊或最近的點,並強調它並修復工具提示的值。 當再次點擊時,工具提示應該繼續捕捉徘徊的點,重點應該消失。

我試圖找到一種方法來做到這一點,但無法達成任何結論。使用getPointsAtEvent可以讓我獲得點數,但是然後改變屬性,並且在畫布上更新這些內容似乎沒有成果。我嘗試更新或重繪畫布,但沒有以任何方式更改畫布。

任何幫助是最受歡迎的。

編輯

我已經設法做一些事情。 通過自定義工具提示,我創建了一個固定的工具提示(按照要求提供)。 然後,我將在使用getPointsAtEvent的畫布div上使用單擊事件。 這裏有幾個問題,首先它返回許多值而不是一個,這使得它不精確(提高精度的一種方法會很好)。

爲了強調,我應該在上面創建一個畫布,但是這個畫布會被隨後調用showtooltip而刪除。

再次,任何幫助是最受歡迎的。

回答

1

這裏有3種方式來強調懸停的圖表點在ChartJS:

  1. ChartJS已經built-in tooltips --check出來!

  2. ChartJS還內置懸停強調通過設置圖表的突出顯示屬性(S)。在某些圖表類型上,高亮屬性爲hightlight,在其他圖表類型上爲highlightFill + highlightStroke

  3. 另外,如果你想做一些自定義的強調,你可以在畫布上的鼠標移動處理器中使用getPointsAtEvent。您需要監聽畫布的鼠標移動事件,因爲畫布上的各個圖形(圖表點)不會引發他們自己的單個事件。此方法「昂貴」,因爲您必須使用每個鼠標移動來切換點屬性。通過在圖表畫布上分層繪製第二個畫布,並將您的重點放在第二個頂部畫布上,可以使它變得不那麼「昂貴」。每個鼠標移動都可以輕鬆清除頂部畫布,從而減少維護費用。

+0

1.我已經在使用它,它就像一個魅力謝謝 2.我有點使用過,這個問題是所有的點是有針對性的 3.還這樣做,但是當我做分層我需要調用顯示工具提示,它似乎像我的頂級畫布被瞬間刪除 我想我需要更新這個問題,使其更完整... – AKFourSeven