2016-04-07 5 views
0

Ich benutze AmCharts und baue ein AmSerialChart. Hier möchte ich das "pan" -Ereignis auslösen. Ich möchte jedoch nur das finale Event auslösen, das heißt also, wenn der Pan beendet ist. Soweit ich das Handbuch lesen kann (https://docs.amcharts.com/3/javascriptcharts/ChartCursor) gibt es dafür kein explizites Ereignis. Aber vielleicht weiß jemand, wie man dieses Event baut oder nur das letzte "Panning" Event bekommt.Auslösen des Pan-End-Ereignisses nur mit AmCharts

Antwort

1

Es gibt kein dediziertes Ereignis dafür. Sie können die Funktionalität jedoch implementieren, indem Sie generische JavaScript-mouseup/touchend-Ereignisse verwenden, um zu erfassen, wenn der Schwenk endet. Ie .:

"listeners": [{ 
    /** 
    * rendered event 
    * we'll use it to set up custom mouse events as well as 
    * pre-zoom the chart 
    */ 
    "event": "rendered", 
    "method": function(e) { 

     // add mouseup events 
     e.chart.chartDiv.addEventListener("mouseup", handleEnd); 
     e.chart.chartDiv.addEventListener("touchend", handleEnd); 

     // function that handles pan end (mouse button released or touch ends) 
     function handleEnd() { 

     // check if there was an previous zoom event 
     if (e.chart.lastZoomedEvent === undefined) 
      return; 

     // do what we need to do with it 
     // ... 
     console.log(e.chart.lastZoomedEvent); 

     // reset 
     e.chart.lastZoomedEvent = undefined; 
     } 

     // pre-zoom the chart 
     e.chart.zoomToIndexes(
     e.chart.dataProvider.length - 40, 
     e.chart.dataProvider.length - 1); 
    } 
    }, { 
    /** 
    * zoomed event 
    * we'll use it to track pan/zoom 
    */ 
    "event": "zoomed", 
    "method": function(e) { 
     // log last zoomed event 
     e.chart.lastZoomedEvent = e; 
    } 
    }] 

Hier ist ein working demo.

Verwandte Themen