How can I trigger the zoom event, once I've set scale manually on the zoom behavior?
var zoom = d3.behavior.zoom()
.scaleExtent([0.5, 4])
.on('zoom', onzoom);
// later on
zoom.scale(2);
How can I trigger the zoom event, once I've set scale manually on the 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
Share Improve this question edited Oct 7, 2015 at 13:32 Sheena 16.2k15 gold badges78 silver badges122 bronze badges asked Oct 29, 2012 at 11:06 Benny SchudelBenny Schudel 2212 silver badges6 bronze badges 2- Did you see the programmatic pan + zoom example? – mbostock Commented Oct 29, 2012 at 17:45
- any suggestion for d3 v4 or v5? – Stranger in the Q Commented Jul 5, 2018 at 7:57
1 Answer
Reset to default 22Firstly, you need to attach the zoom behavior to an SVG object. As well, you can call the zoom function on the zoom object.
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);