0

API を検索して、マウスアップ イベントの後にハンドルの x 値を取得する方法があるかどうかを調べましたが、何も見つかりませんでした。私が見つけた唯一のことは、メイン シリーズの値を取得する方法であり、ナビゲーター自体には何もありませんでした。これらの値を取得する方法を知っている人はいますか? 以下は、私が現在使用しているサンプル コードです。下部にナビゲーター スライダーがあり、いじることができます。ナビゲーターからハンドルをドラッグしたいのですが、ハンドルを放すと、x 値を含む警告メッセージがポップアップ表示されます。

http://jsfiddle.net/fqptH/2/

var highPoint=0;
var highCount=0;

$(function() {   
function getPoints() {
    var dataPoints = [];
    for (var i=0; i<=100; i++) {
        if (i == highPoint && highCount < 20) {
            dataPoints[i]=[i,8];
            highCount++;
        } else {
            var randomnumber=Math.floor(Math.random()*2);
            dataPoints[i]=[i,randomnumber];
        }
        if (highCount == 20) { highCount = 0; }
    }
    if (highPoint == 100) { highPoint=0; }
    if (highCount == 19) { highPoint++; }
    return dataPoints;
} 

var chart = new Highcharts.StockChart({
    chart: {
        renderTo: 'container'
    },
    navigator : {
        series: {
            //data: [[1,1],[2,2],[3,1]]
            data: getPoints()
        }
    },
    series: [{
        data: [[1,1],[2,2],[3,1]]
        //data: getPoints()      
    }]
});

function update() {
    //chart.series[0].setData(getPoints());
    setTimeout(update, 100);        
}
update();
});
4

3 に答える 3

3

プロットが描かれた後にこれを試してください:

// left handle
$(Highcharts.charts[0].scroller.handles[0].element).mouseup(function(){
    var minPixel = Highcharts.charts[0].scroller.zoomedMin;
    alert(Highcharts.charts[0].scroller.xAxis.toValue(minPixel));
});

// right handle
$(Highcharts.charts[0].scroller.handles[1].element).mouseup(function(){
    var maxPixel = Highcharts.charts[0].scroller.zoomedMax;
    alert(Highcharts.charts[0].scroller.xAxis.toValue(maxPixel));
});

ここにフィドルの例があります。

于 2013-10-22T19:12:01.627 に答える
0

@Mark からの役立つヒントを参考にして、次のことを思いつきました。toValue は数値を正しく解決しませんが、ソースを調べると、.translate(value, true) で非常によく似たことができます。これにより、ピクセル位置が軸の値に変換されます。

var scroller = Highcharts.charts[0].scroller;
var navMin = scroller.xAxis.translate(scroller.zoomedMin, true);
var navMax = scroller.xAxis.translate(scroller.zoomedMax, true);
alert('min: '+Math.round(navMin)+"\nmax: "+Math.round(navMax));

完全な jsfiddle の例を次に示します。

http://jsfiddle.net/fqptH/9/

于 2013-10-24T02:36:50.977 に答える