La función zoom.wheelDelta() de D3.js se usa para establecer la función delta de la rueda en la función especificada y devuelve el comportamiento del zoom.
Sintaxis:
zoom.wheelDelta([delta])
Parámetros: Esta función acepta un solo parámetro como se mencionó anteriormente y se describe a continuación.
- delta: este parámetro se utiliza para establecer la función delta de la rueda en la función especificada.
Valor devuelto: esta función devuelve el comportamiento del zoom.
Los siguientes programas ilustran la función zoom.wheelDelta() en D3.js
Ejemplo 1:
HTML
<!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.wheelDelta() 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]]) .wheelDelta(myDelta) .on("zoom", zoomed); // Call the Zoom. var rect = svg.append("rect") .attr("width",width) .attr("height",height) .attr("fill","none") .call(zoom); function zoomed() { var t = d3.event.transform; scale.domain(t.rescaleX(shadowScale).domain()); g.call(axis); } function myDelta() { return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1) / 1500; } </script> </center> </body> </html>
Producción:
Ejemplo 2:
HTML
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://d3js.org/d3.v5.js"> </script> <style> rect { fill: green; opacity: 0.5; stroke: black; stroke-width: 1px; } svg { border: 1px solid; font: 13px sans-serif; } </style> </head> <body> <center> <h1 style="color: green;"> Geeksforgeeks </h1> <h3>D3.js | zoom.wheelDelta() Function</h3> <div id="GFG"> </div> <script> var width = 400; var height=250; var size=30; var svg = d3.select('#GFG') .append('svg') .attr('width', width) .attr('height', height) var g = svg.append('g') var numrects = 100; var rects = []; for (var i = 0; i < numrects; i++) rects.push({'x': 1 + Math.floor(Math.random() * width), 'y': 1+Math.floor(Math.random() * height), 'h': 3+Math.floor(Math.random() * size), 'w': 3+Math.floor(Math.random() * size) }); g.selectAll('rect') .data(rects) .enter() .append('rect') .attr('x', function(d) { return d.x; }) .attr('y', function(d) { return d.y; }) .attr('height', function(d) { return d.h; }) .attr('width', function(d) { return d.w; }) .classed('no-zoom', true) var zoomed = d3.zoom() .wheelDelta(myDelta) .scaleExtent([1,10]) .on('zoom', function(d){ g.attr('transform', d3.event.transform); }); svg.call(zoomed); function myDelta() { return d3.event.deltaY / 10; } </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