2012-10-29 11 views
7

Come posso attivare l'evento di zoom, una volta che ho impostato manualmente la scala sul comportamento dello zoom?Come posso inviare un evento "zoom" dopo aver impostato la scala (d3, zoom.behavior)

var zoom = d3.behavior.zoom() 
    .scaleExtent([0.5, 4]) 
    .on('zoom', onzoom); 

// later on 
zoom.scale(2); 

https://github.com/mbostock/d3/wiki/Zoom-Behavior#wiki-scale

+0

Hai visualizzato l'esempio [zoom programmatico di panoramica +] (http://bl.ocks.org/3892928)? – mbostock

risposta

20

In primo luogo, è necessario collegare il comportamento di zoom a un oggetto SVG. Inoltre, puoi chiamare la funzione di zoom sull'oggetto zoom.

var zoom = d3.behavior.zoom() 
    .scaleExtent([0.5, 4]) 
    .on('zoom', onzoom); 

//svgElement is an actual element such as a rect or text or group 
svgElement.call(zoom); 

// later on 
zoom.scale(2); 
zoom.event(svgElement); 
+0

L'ultima riga dovrebbe essere 'zoom.event (svgElement)', a parte questo - perfetto! Grazie! – johndodo

Problemi correlati