La función selection.interrupt() en D3.js se usa para interrumpir la transición activa del nombre especificado en los elementos seleccionados y cancela cualquier transición pendiente con el nombre especificado.
Sintaxis:
selection.interrupt([name])
Parámetros: Esta función acepta el siguiente parámetro como se mencionó anteriormente y se describe a continuación:
- nombre: este parámetro es la instancia de transición.
Valor devuelto: esta función devuelve una nueva transición en la selección dada con el nombre especificado.
Los siguientes programas ilustran la función selection.interrupt() en D3.js.
Ejemplo 1:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://d3js.org/d3.v5.min.js"> </script> <style> svg { background-color: #de7d45; display: block; }; </style> </head> <body> <center> <h1 style="color: green;"> Geeksforgeeks </h1> <h3>D3.js | selection.interrupt() Function</h3> <button>Stop</button> <svg width="500" height="150"></svg> <script> const svg = d3.select("svg"); const local = d3.local(); const button = d3.select("button"); const circle = svg.append("circle") .attr("r", 25) .attr("cx", 30) .attr("cy", 75) .style("fill", "green") .style("stroke", "black"); circle.transition() .delay(5000) .duration(10000) .ease(d3.easeLinear) .attr("cx", 580) .on("interrupt", function() { local.set(this, +d3.select(this) .attr("cx")) }); button.on("click", function() { if (d3.active(circle.node())) { circle.interrupt(); this.textContent = "Resume"; } else { circle.transition() .ease(d3.easeLinear) .duration(function() { return 10000 * (560 - local.get(this)) / 560; }) .attr("cx", 580) this.textContent = "Stop"; } }) </script> </center> </body> </html>
Producción:
Ejemplo 2:
HTML
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://d3js.org/d3.v5.min.js"> </script> </head> <body> <center> <h1 style="color: green;"> Geeksforgeeks </h1> <h3>D3.js | selection.interrupt() Function</h3> <svg width="500" height="300"></svg> <script> var svg = d3.select("svg") var circle = svg.selectAll("circle") .data([1, 2, 3, 4]) .enter() .append("circle") .style("fill", "green") .attr("cx", 50) .attr("cy", function(d) { return d * 50 }) .attr("r", 20) .on("click", function() { d3.select(this).interrupt() }) circle.transition() .delay(function(d) { return d * 500; }) .duration(function(d) { return d * 1000; }) .attr("cx", 460) .on("interrupt", function() { var elem = this; var targetValue = d3.active(this) .attrTween("cx") .call(this)(1); d3.select(this).attr("cx", targetValue) }) </script> </center> </body> </html>
¿Escribir código en un comentario? Utilice ide.geeksforgeeks.org , genere un enlace y compártalo aquí.
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA