The d3.zoom() Function in D3.js is used to create a new zoom behaviour. It is used to apply the zoom transformation on a selected element.
Syntax:
d3.zoom();
Parameters: This function does not accept any parameter.
Return Value: This function returns the zoom behaviour.
Below programs illustrate the d3.zoom() function in D3.js
Example 1: This example, Zooming and panning is done. Double click to zoom, the circle gets bigger.
<!DOCTYPE html> < html > < head > < meta charset = "utf-8" > </ script > </ head > < body > < center > < h1 style = "color: green;" > Geeksforneveropen </ h1 > < h3 >D3.js | d3.zoom() Function</ h3 > < div id = "GFG" ></ div > < script > var svg = d3.select("#GFG") .append("svg") .attr("width", 300) .attr("height", 300) .call(d3.zoom().on("zoom", function () { svg.attr("transform", d3.event.transform) })) .append("g") svg .append("circle") .attr("cx", 150) .attr("cy", 150) .attr("r", 40) .style("fill", "green") </ script > </ center > </ body > </ html > |
Output:
Example 2:
<!DOCTYPE html> < html > < head > < meta charset = "utf-8" > </ script > < style > svg text { fill: green; font: 20px sans-serif; text-anchor: center; } rect { pointer-events: all; } </ style > </ head > < body > < center > < h1 style = "color: green;" > Geeksforneveropen </ h1 > < h3 >D3.js | d3.zoom() Function </ h3 > < svg ></ svg > < script > var width = 400; var height = 200; var svg = d3.select("svg") .attr("width", width) .attr("height", height); // The scale used to display the axis. var scale = d3.scaleLinear() .range([10, width-20]) .domain([0, 100]); var shadowScale = scale.copy(); var axis = d3.axisBottom() .scale(scale); var g = svg.append("g") .attr("transform", "translate(0, 50)") .call(axis); // Standard zoom behavior: var zoom = d3.zoom() .scaleExtent([1, 10]) .translateExtent([[0, 0], [width, height]]) .on("zoom", zoomed); // Call the Zoom. svg.call(zoom); </ script > </ center > </ body > </ html > |
Output: