【发布时间】:2016-09-27 09:03:00
【问题描述】:
在我的 highchart 上,在显示系列工具提示之前我需要延迟。
我用定时器定义了一个新的刷新函数来实现它。如果计时器准备好了,我会检查鼠标位置。如果它移动得不多,则应该出现工具提示。
function (H) {
var timer = [];
var mousePosition = {
x: 0,
y: 0
};
window.addEventListener("mousemove", function (event) {
mousePosition.x = event.pageX;
mousePosition.y = event.pageY;
});
var getMousePositionX = function () {
return mousePosition.x;
};
var clearTimer = function () {
timer = [];
}
H.wrap(H.Tooltip.prototype, 'refresh', function (proceed) {
var mousePosX = getMousePositionX();
var delayForDisplay = this.chart.options.tooltip.delayForDisplay ? this.chart.options.tooltip.delayForDisplay : 1000;
timer[timer.length+1] = window.setTimeout(function () {
var currMousePosX = getMousePositionX();
if ((mousePosX >= currMousePosX - 5 && mousePosX <= currMousePosX + 5)) {
this.proceed.apply(this.tooltip, this.refreshArguments);
clearTimer();
}
}.bind({
refreshArguments: Array.prototype.slice.call(arguments, 1),
chart: this.chart,
tooltip: this,
clearTimer: clearTimer,
proceed: proceed
}), delayForDisplay);
});
};
我遇到的问题是,悬停全息也有延迟。
这是一个示例:JSFiddle
有解决这个问题的办法吗?
【问题讨论】:
-
我希望这个例子可以帮助你解决你的问题:jsfiddle.net/az39das8
-
@GrzegorzBlachliński:这正是我想要的。你太棒了:)
-
很高兴看到我的想法对你有用。我已将其发布为答案:)
标签: javascript highcharts tooltip