当调用刷新时,我们希望在每个系列的当前点绘制一个trackball。如果一个系列已经包含了一个标记,这个函数应该被丢弃。
H.wrap(H.Tooltip.prototype, 'refresh', function (proceed, points) { // Run the original proceed method proceed.apply(this, Array.prototype.slice.call(arguments, 1)); // For each point add or update trackball H.each(points, function (point) { // Function variables var series = point.series, chart = series.chart, pointX = point.plotX + series.xAxis.pos, pointY = H.pick(point.plotClose, point.plotY) + series.yAxis.pos; // If trackball functionality does not already exist if (!series.options.marker) { // If trackball is not defined if (!series.trackball) { // Creates a new trackball with same color as the series series.trackball = chart.renderer.circle(pointX, pointY, 5).attr({ fill: series.color, stroke: 'white', 'stroke-width': 1, zIndex: 5 }).add(); } else { // Updates the position of the trackball series.trackball.attr({ x: pointX, y: pointY }); } } }); });现在trackball已经显示了,但是当工具提示移除后需要隐藏它,因而在隐藏方法里需要一些其他的功能,一个新的封装被添加到了包含这个插件的函数中。
H.wrap(H.Tooltip.prototype, 'hide', function (proceed) { var series = this.chart.series; // Run original proceed method proceed.apply(this); // For each series destroy trackball H.each(series, function (serie) { var trackball = serie.trackball; if (trackball) { serie.trackball = trackball.destroy(); } }); });
慧都控件|提供软件技术整体解决方案
云集全球三千余款优秀控件、软件产品,提供行业领先的咨询、培训与开发服务
企业QQ:800018081|电话:023-66090381