5

ハイストック チャートを使用していますが、ズーム ボタン (1m、2m など) を別の位置に移動したいと考えています。

私は彼らのAPIをチェックしましたが、現在それを行うオプションはないようです. また、ソースコードは、この場所がハードコードされていることを示唆しているため、文書化されていないプロパティを使用して位置を簡単に挿入できるとは思わない

ハイストックソース

Highcharts.RangeSelector.prototype.render = function (min, max) {
...
rangeSelector.zoomText = renderer.text(lang.rangeSelectorZoom, plotLeft, chart.plotTop - 10)
                .css(options.labelStyle)
                .add();

// button starting position
buttonLeft = plotLeft + rangeSelector.zoomText.getBBox().width + 5;
...
}
4

2 に答える 2

8

これは、現在の render メソッドをオーバーライドし、実際の render メソッドを呼び出した後にボックスを目的の位置に移動することで実行できます。

var orgHighchartsRangeSelectorPrototypeRender = Highcharts.RangeSelector.prototype.render;
Highcharts.RangeSelector.prototype.render = function (min, max) {
    orgHighchartsRangeSelectorPrototypeRender.apply(this, [min, max]);
    var leftPosition = this.chart.plotLeft,
        topPosition = this.chart.plotTop+5,
        space = 2;
    this.zoomText.attr({
        x: leftPosition,
        y: topPosition + 15
    });
    leftPosition += this.zoomText.getBBox().width;
    for (var i = 0; i < this.buttons.length; i++) {
        this.buttons[i].attr({
            x: leftPosition,
            y: topPosition 
        });
        leftPosition += this.buttons[i].width + space;
    }
};

このコードは、チャートを作成する前に実行する必要があります

ズーム ボタンの配置 | ハイチャート & ハイストック @ jsFiddle

于 2013-03-14T12:56:25.290 に答える
0

現時点では不可能ですが、ここで声をあげることができますhttp://highcharts.uservoice.com/forums/55896-general/suggestions/2436599-add-ability-to-change-rangeselector-position

于 2013-03-14T15:13:29.760 に答える