Lightningcharts-双击时重置轴



我面临以下问题。当我想设置用户可以放大图表的最小边界时,双击轴将停止工作。这里有一段代码可以帮助您理解。函数HandleScaleChangeY需要同时滚动多个图表。我做错了什么?

const HandleScaleChangeY = (yAxisIndex) => {
return (start, end) => {
for (let i = 0; i < yAxes.length; i++) {
let newStart, newEnd
if (start < end) {
newStart = end
newEnd = start
} else {
newStart = start
newEnd = end
}
const axis = yAxes[i]
if (i !== yAxisIndex && (axis.scale.getInnerStart() !== newStart || axis.scale.getInnerEnd() !== newEnd))
if (newStart-newEnd<10000) {
axis.setInterval(axis.scale.getInnerStart(), axis.scale.getInnerEnd())
} else{
axis.setScrollStrategy(undefined)
.setInterval(newStart, newEnd)
}
}
}
}
for (let i = 0; i < yAxes.length; i++) {
const yAxis = yAxes[i]
yAxis.onScaleChange(HandleScaleChangeY(i))
}

问题是触发条件if (newStart-newEnd<10000)后,双击轴停止工作(轴范围未返回初始状态(

双击LCJS轴"释放";轴,使其在之前冻结时自动滚动。

但是,轴只有在具有活动ScrollStrategy时才能自动滚动。

我在您的代码中看到您正在使用axis.setScrollStrategy(undefined),这将禁用轴上的所有自动滚动,除非通过设置axis.setScrollStrategy(AxisScrollStrategies.fitting)undefined以外的其他滚动策略重新启用。

如果你想设置轴间隔,并暂时冻结它(直到用户双击(,你可以这样做:Axis.setInterval(newStart, newEnd, false, true)

其中第一布尔CCD_ 7控制转换是否被动画化,并且第二布尔值CCD_ 8控制之后是否冻结轴。

相关内容

  • 没有找到相关文章

最新更新