d3.js - 屏蔽形状以创建透明部分

The*_*nty 1 javascript css d3.js

在此处输入图片说明

我有兴趣学习如何使用 d3.js 创建透明蒙版。

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

这就是我要做的 - 我将如何在红色矩形上创建减法蒙版 - 还有你如何设置红色矩形的样式以具有更多的乘法样式属性?

$(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");


});
Run Code Online (Sandbox Code Playgroud)

小智 5

您需要一个 SVG 蒙版。随意使用它来调整参数:

  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);
Run Code Online (Sandbox Code Playgroud)

修改示例:http : //jsfiddle.net/59bunh8u/40/

另请参阅SVG clipPath 以将 *outer* 内容剪掉