ChartJS v2:点击坐标的比例值(时间比例)
ChartJS v2: Scale value at click coordinates (time scale)
我有一个时间基线图,我正试图获得点击坐标处每个刻度的值。
ChartJS选项中指定的我的onClick函数:
onClick: function(event, elementsAtEvent)
{
console.log(event, elementsAtEvent, this);
var valueX = null, valueY = null;
for (var scaleName in this.scales) {
var scale = this.scales[scaleName];
console.log(scale.id, scale.isHorizontal());
if (scale.isHorizontal()) {
valueX = scale.getValueForPixel(event.offsetX);
} else {
valueY = scale.getValueForPixel(event.offsetY);
}
}
console.log(event.offsetX, valueX, null, event.offsetY, valueY);
},
JSFiddle:https://jsfiddle.net/AllenJB/dmebo9g5/1/
上面的代码似乎适用于Y轴,但不适用于X轴(时间刻度)——无论您在图表中单击什么位置,它都会返回最后一个值。
我可能做错了什么?
这段代码实际上运行得很好。唯一的问题是,我查看了moment对象的_I值来检查它的值(这是创建对象时用作初始输入的值,不一定是当前值)。
将console.log行更改为以下行将产生预期/正确的结果:
console.log(event.offsetX, valueX.format('YYYY-MM-DD HH:mm:ss'), null, event.offsetY, valueY);
如果你想获得最接近的x轴值,你可以这样做:
onClick: function (event) {
const activeElements = this.getElementsAtXAxis(event);
const xval = this.scales['x-axis-0']._timestamps.data[activeElements[0]._index];
console.log(xval)
}
相关文章:
- Java脚本时间添加
- Json数据包含日期和时间格式
- 如何根据时间运行不同的脚本
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 在wordpress一定时间后更改自定义字段
- 更改angularjs中的日期-时间格式
- 将当前时间添加到我的页面上的特定部分
- 门户网站:当地时间有多有用
- 显示时间的脚本
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 通过JSON&比较时间
- Javascript时间轨迹
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 将日期时间从json转换为可读格式
- 高库存时期时间与时区不匹配
- Jquery如何检查今天的时间大于使用给定时间
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- primefaces日历可以禁用过去的日期和时间吗
- Jquery函数在错误的时间提交
- ChartJS v2:点击坐标的比例值(时间比例)