D3.js – masquer des formes pour créer une section transparente

Entrez la description de l'image ici

Je suis intéressé à apprendre à créer un masque transparent avec d3.js.

Http://jsfiddle.net/59bunh8u/35/

C'est là que je suis en train de faire – comment créer un masque de soustraction sur le rectangle rouge – comment pouvez-vous alors style du rectangle rouge pour prendre plus d'une propriété de style multiplier?

$(document).ready(function() { var el = $(".mask"); //selector // Set the main elements for the series chart var svg = d3.select(el[0]).append("svg") .attr("class", "series") .attr("width", "800px") .attr("height", "500px") .append("g") .attr("transform", "translate(0,0)") var rect = svg .append("rect") .attr("x", 0) .attr("y", 0) .attr("width", 500) .attr("height", 500) .style("fill", "red") .style('opacity', 0.75) var rect = svg .append("circle").attr("cx", 250).attr("cy", 250).attr("r", 125).style("fill", "white"); }); 

Vous avez besoin d'un masque SVG. N'hésitez pas à jouer avec elle pour modifier les paramètres:

  var mask = svgroot .append("defs") .append("mask") .attr("id", "myMask"); mask.append("rect") .attr("x", 0) .attr("y", 0) .attr("width", 500) .attr("height", 500) .style("fill", "white") .style("opacity", 0.7); mask.append("circle") .attr("cx", 300) .attr("cy", 300) .attr("r", 100); 

Exemple modifié: http://jsfiddle.net/59bunh8u/40/

Voir aussi SVP clipPath pour extraire le contenu * extérieur *