La función zoom.transform() en D3.js se usa para establecer la transformación de zoom actual de los elementos seleccionados en la transformación especificada.
Sintaxis:
zoom.transform(selection, transform[, point]);
Parámetros: esta función acepta un solo parámetro como se mencionó anteriormente y se describe a continuación:
- selección: Este parámetro puede ser de selección o de transición.
- transform: este parámetro se puede definir como una transformación de zoom o como una función.
Valor de retorno: esta función devuelve la transformación de zoom.
Los siguientes programas ilustran la función zoom.transform() en D3.js
Ejemplo 1:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://d3js.org/d3.v4.min.js"> </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;"> Geeksforgeeks </h1> <h3>D3.js | zoom.transform() Function</h3> <button id="reset">Reset</button><br/> <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. var rect = svg.append("rect") .attr("width", width) .attr("height", height) .attr("fill", "none") .call(zoom); d3.select("#reset") .on("click", function() { // Create an identity transform var transform = d3.zoomIdentity; // Apply the transform: rect.call(zoom.transform, transform); }) function zoomed() { var t = d3.event.transform; scale.domain(t.rescaleX(shadowScale).domain()); g.call(axis); } </script> </center> </body> </html>
Producción:
Ejemplo 2:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://d3js.org/d3.v4.min.js"> </script> <style> rect { cursor: pointer; } </style> </head> <body> <center> <h1 style="color: green;"> Geeksforgeeks </h1> <h3>D3.js | zoom.transform() Function</h3> <button>Trigger Zoom</button> <br/> <span> Zoom Level: </span> <span id="GFG"></span><br/> <svg></svg> <script> var scale = d3.scaleSqrt() .range(["green", "purple", "blue"]) .domain([1, 40, 1600]); var zoom = d3.zoom() .on("zoom", zoomed) .scaleExtent([1, 1600]) var rect = d3.select("svg") .append("rect") .attr("width", 400) .attr("height", 300) .attr("fill", "green") .call(zoom); rect.call(zoom.transform, d3.zoomIdentity); d3.select("button").on("click", function() { var newTransform = d3.zoomIdentity.scale(100); rect.call(zoom.transform, newTransform); }) // Zoom function: function zoomed(){ var k = d3.event.transform.k; rect.attr("fill", scale(k)); d3.select("#GFG").text(k); } </script> </center> </body> </html>
Producción:
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA