gpt4 book ai didi

javascript - Highcharts:显示前工具提示延迟

转载 作者:行者123 更新时间:2023-12-02 14:09:47 24 4
gpt4 key购买 nike

在我的 Highcharts 上,我需要在显示系列工具提示之前延迟。

我定义了一个新的带有定时器的刷新函数来实现它。如果计时器准备好,我检查鼠标位置。如果移动幅度不大,应该会出现工具提示。

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

这个问题有解决办法吗?

最佳答案

您可以根据标准 Highcharts 工具提示制作新的工具提示,并在鼠标悬停时显示它,并有一定的超时时间:

load: function() {
chart = this;
this.myTooltip = new Highcharts.Tooltip(this, this.options.tooltip);
this.tooltip.label.element.remove();
}


point: {
events: {
mouseOver: function(e) {
var i = this.x;
points = [];
Highcharts.each(this.series.chart.series, function(s) {
Highcharts.each(s.data, function(p) {
if (p.x === i) {
points.push(p)
}
})
});
myTooltip = chart.myTooltip;
setTimeout(function() {
myTooltip.refresh(points, e)
}, 1000)

}, mouseOut: function() {
setTimeout(function() {
chart.myTooltip.hide();
}, 1000)
}
}
}

在这里您可以看到它如何工作的示例:http://jsfiddle.net/az39das8/

关于javascript - Highcharts:显示前工具提示延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39720470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com