我创建了一个图表,其中添加了图像。现在,当我单击此图像时,我想将 yAxis 最大值设置为特定点,然后再次单击它以将 yAxis 重置为原始值。这是它的 jsfiddle:http: //jsfiddle.net/inadcod/TynwP/ 我已经设法添加图像,向图像添加点击事件,但就我所知。谁能帮我解决这个问题?谢谢!
问问题
3167 次
1 回答
3
有两种方法可以做你想做的事。
第一种方式:
问题是不可能更新图表选项然后redraw
更新它,您必须destroy
然后再次创建它,如下所示。
因此,为此,您可以将图表存储options
到 var 中,然后作为参数传递。
// inside options
load: function() {
this.renderer.image('http://inadcod.com/img/zoom.png', 70, 10, 28, 28)
.on('click', function() {
if(options.yAxis.max) {
delete options.yAxis.max; // return to default
} else {
options.yAxis.max = 25;
}
chart = new Highcharts.Chart(options);
})
.css({
cursor: 'pointer',
position: 'relative',
"margin-left": "-90px",
opacity: 0.75
}).attr({
id: 'myImage',
zIndex: -100
}).add();
}
第二种方式:
redraw
如果您只是更新axis
如下数据,则不会调用。
chart.yAxis[0].max = 25;
,这就是为什么我建议上面的方式。
但是,如果您设置chart.yAxis[0].isDisty = true;
并调用chart.redraw();
,它将起作用。你可以在下面看到我的演示。
// inside chart options
load: function() {
this.renderer.image('http://inadcod.com/img/zoom.png', 70, 10, 28, 28)
.on('click', function() {
var axis = chart.yAxis[0];
axis.max = 25;
axis.isDirty = true;
chart.redraw();
})
.css({
cursor: 'pointer',
position: 'relative',
"margin-left": "-90px",
opacity: 0.75
}).attr({
id: 'myImage', // your image id
zIndex: -100
}).add();
}
于 2012-09-04T21:14:23.920 回答