我正在尝试修改垂直C3.js Spine图表的行为,以便鼠标滚轮滚动数据范围而不是缩放。当有人在其父div中滚动时,我使用Prototype创建了一个事件监听器来改变图表的范围:
$("chartDiv").observe("mousewheel", function(e, charts) {
if (charts.get("splineChart") != null) {
var cht = charts.get("splineChart");
var range = cht.axis.range();
if (e.wheelDelta > 0) {
cht.axis.range({
min: {
y: range.min.y - 10
},
max: {
y: range.max.y - 10
},
});
}
else {
cht.axis.range({
min: {
y: range.min.y + 10
},
max: {
y: range.max.y + 10
},
});
}
}
}.bindAsEventListener(this, chartList));
在Chrome中进行测试时,事件处理得当且我可以访问我想要使用的图表对象,但是range()返回的max和min对象具有x,y和y2的未定义值。
我已经阅读了http://c3js.org/reference.html#api-axis-range上列出的API,它说调用不带参数的range()应返回每个轴的当前最小值和最大值。
我在这里做错了什么?我需要获取并更新图表中数据的当前显示范围。