d3.js - 掩盖形状以创建透明的部分

时间:2016-09-06 22:57:11

标签: javascript css d3.js

enter image description here

我有兴趣学习如何使用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");


});

1 个答案:

答案 0 :(得分:4)

您需要一个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);

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

另见SVG clipPath to clip the *outer* content out