我正在使用我目前正在使用工具提示格式化程序功能来控制工具提示的外观,包括添加一些自定义 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
};
}
}
这是问题 http://jsfiddle.net/bteWs/的 js fiddle 示例
如果你慢慢地走,并注意到切换发生的第一个点,箭头将指向错误的方向。之后它会更正(如我的帖子中所述)。只是在寻找解决方案以在这种情况下获得正确的行为。