gpt4 book ai didi

javascript - 如何限制 highstock.js 中导航器的大小?

转载 作者:行者123 更新时间:2023-11-27 23:02:28 26 4
gpt4 key购买 nike

我有一个具有长时间序列的应用程序,我想限制导航器的最大大小。我找到了afterSetExtremes文档中的事件,我认为我可以捕获该事件,然后从那里限制导航器的大小。但它并没有真正按预期工作。我似乎能够限制绘制数据的 x 大小。但导航器根本不遵循绘制数据的大小。我在这里错过了什么吗?我怎样才能让它正常工作?理想情况下,导航器将在特定尺寸上保持固定尺寸。这可以实现吗?

这里是 jsfiddle:

http://jsfiddle.net/jn3cww8n/2/

$(function () {
$('#container').highcharts('StockChart', {
xAxis: {
events: {
afterSetExtremes: function(e) {

var dmin = Math.abs(e.min - this.oldMin),
dmax = Math.abs(e.max - this.oldMax),
range = e.max - e.min,
new_min = e.min,
new_max = e.max,
yr_range = range / 1000 / 60 / 60 / 24;
if (0.0 === dmin && 0.0 < dmax) {
$('#report').html('Max changed ' + yr_range);

if (31536000000.0 < range) {
$('#report').html('setting new max');
new_max = new_min + 31536000000.0;
}

} else if (0.0 < dmin && 0.0 === dmax) {
$('#report').html('Min changed ' + yr_range);

if (31536000000.0 < range) {
$('#report').html('setting new min');
new_min = new_max - 31536000000.0;
}

} else {
$('#report').html('Nothing changed');
}

this.setExtremes(new_min, new_max);

}
}
},
rangeSelector: {
selected: 1
},
series: [{
name: 'USD to EUR',
data: usdeur
}]
});
});

最佳答案

我改变了这一点。我没有限制导航器的最大大小,而是限制用户完全更改其大小。

我的想法来自this发布。

只需进行两处更改:

  1. 清空drawHandle函数Highcharts.Scroller.prototype.drawHandle = function () {};
  2. 注释掉几行:

    22472,22476c22472,22476

    < //if (isOnNavigator && math.abs(chartX - zoomedMin - navigatorLeft) < handleSensitivity) {

    < //scroller.grabbedLeft = true;

    < //scroller.otherHandlePos = zoomedMax;

    < //scroller.fixedExtreme = baseXAxis.max;

    < //chart.fixedRange = null;

    ---

    > if (isOnNavigator && math.abs(chartX - zoomedMin - navigatorLeft) < handleSensitivity) {

    > scroller.grabbedLeft = true;

    > scroller.otherHandlePos = zoomedMax;

    > scroller.fixedExtreme = baseXAxis.max;

    > chart.fixedRange = null;

    22479,22483c22479,22483

    < //} else if (isOnNavigator && math.abs(chartX - zoomedMax - navigatorLeft) < handleSensitivity) {

    < //scroller.grabbedRight = true;

    < //scroller.otherHandlePos = zoomedMin;

    < //scroller.fixedExtreme = baseXAxis.min;

    < //chart.fixedRange = null;

    ---

    > } else if (isOnNavigator && math.abs(chartX - zoomedMax - navigatorLeft) < handleSensitivity) {

    > scroller.grabbedRight = true;

    > scroller.otherHandlePos = zoomedMin;

    > scroller.fixedExtreme = baseXAxis.min;

    > chart.fixedRange = null;

    22486,22487c22486

    < //} else if (chartX > navigatorLeft + zoomedMin - scrollbarPad && chartX < navigatorLeft + zoomedMax + scrollbarPad) {

    < if (chartX > navigatorLeft + zoomedMin - scrollbarPad && chartX < navigatorLeft + zoomedMax + scrollbarPad) {

    ---

    > } else if (chartX > navigatorLeft + zoomedMin - scrollbarPad && chartX < navigatorLeft + zoomedMax + scrollbarPad) {

总体来说非常干净。

关于javascript - 如何限制 highstock.js 中导航器的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36941119/

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