現在、ツールチップ フォーマッタ関数を使用してツールチップの外観を制御しています。カスタム css を追加して、マウスに面しているツールチップ ボックスの側面に矢印を作成します。また、ポジショナー コールバックを使用して、ツールチップの配置を決定するだけでなく、マウスの一方の側からもう一方の側に変更されたときに、フォーマッター コールバックを更新して、ツールチップの矢印がある側を切り替えます (を参照)。以下のコード)。ツールチップがマウスの側面を切り替える最初のポイントを除いて、すべてが正常に機能します。ツールチップの「フォーマッター」関数がツールチップの「ポジショナー」関数の前に呼び出されることは明らかです (理由はおそらく明らかです)。ただし、側面が変わると、ツールチップを正しく描画できなくなります。ポジショナー コールバックで実行できるようにする必要があるのは、フォーマッター関数を更新してから、ツールヒントを再描画することです。それは可能ですか?
positioner: function (boxWidth, boxHeight, point) {
// Set up the variables
var chart = this.chart;
var plotLeft = chart.plotLeft;
var plotTop = chart.plotTop;
var plotWidth = chart.plotWidth;
var plotHeight = chart.plotHeight;
var distance = 40;
var pointX = point.plotX;
var pointY = point.plotY;
// Determine if we need to flip the tooltip from following on the left to
// following on the right
if ((pointX - boxWidth - distance) < plotLeft) {
x = pointX + distance;
chart.tooltip.options.formatter = function () {
// UPATE THE TOOLTIP FORMATTER HERE
};
}
}
問題の js フィドルの例を次に示します http://jsfiddle.net/bteWs/
ゆっくりと進み、スイッチが発生する最初のポイントに気付くと、矢印は間違った方向を指します. その後、修正します(私の投稿で説明されているように)。この場合、正しい動作を得るための解決策を探しています。