如何解决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)
或除 {{ 以外的其他滚动策略重新启用1}}。
如果你想设置轴间隔,并暂时冻结它(直到用户双击),你可以这样做:undefined
...其中第一个布尔值 Axis.setInterval(newStart,newEnd,false,true)
控制过渡是否动画,
第二个布尔值 false
控制之后是否冻结轴。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。