D3:将滤镜添加为SVG元素的背景

短信服务

在D3中,我想将背景色应用于轴标签。可以做到这一点,rect但是使用SVG过滤器似乎是一个更好的选择,因为它们可以适应标签的尺寸。我来到这么远(小提琴)使用

var filterDef = svg.append("defs");
var filter = filterDef.append("filter")
        .attr("id", "textBackground")
        .attr("x", 0)
        .attr("y", 0)
        .attr("width", 1)
        .attr("height", 1)
        .append("feFlood")
        .attr("flood-color", "green")
        .attr("result","txtBackground")
var filterMerge = filter.append("feMerge");
filterMerge.append("feMergeNode")
        .attr("in", "txtBackground");
filterMerge.append("feMergeNode")
        .attr("in", "SourceGraphic");            
d3.selectAll(".xAxis>.tick>text")
    .style("filter", "url(#textBackground)");

但是text即使我一直紧跟这个示例,过滤器也被添加到元素的前面

罗伯特·朗森

您快到了,只需要正确设置过滤器层次即可。过滤器元素必须是同级。

var svg = d3.select("body").append("svg");
var w = 500, h = 200;
var padding = 50;
svg.attr("width", w)
   .attr("height", h);
var xScale = d3.time.scale()
    .domain([0, 1000])
    .range([padding, w-padding]);
var xAxis = d3.svg.axis()
    .scale(xScale)
    .ticks(5);
svg.append("g")
		.attr("class","xAxis")
    .call(xAxis);
var filterDef = svg.append("defs");
var filter = filterDef.append("filter")
            .attr("id", "textBackground")
            .attr("x", 0)
            .attr("y", 0)
            .attr("width", 1)
            .attr("height", 1);
   filter         
            .append("feFlood")
            .attr("flood-color", "green")
            .attr("result","txtBackground")
var filterMerge = filter.append("feMerge");
filterMerge.append("feMergeNode")
            .attr("in", "txtBackground");
filterMerge.append("feMergeNode")
            .attr("in", "SourceGraphic");            
d3.selectAll(".xAxis>.tick>text")
		.style("filter", "url(#textBackground)");
    
    
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将点添加到d3 SVG贴图

来自分类Dev

将列添加为背景

来自分类Dev

如何将CSV文件中的链接添加到D3生成的SVG元素?

来自分类Dev

尝试将图像添加为pygame背景

来自分类Dev

如何将背景图像添加到使用D3创建的绘图中

来自分类Dev

将Bootstrap工具提示绑定到使用d3动态创建的SVG元素

来自分类Dev

如何将SVG元素的属性传递给D3中的新事件?

来自分类Dev

d3:将元素附加到现有svg时的关键功能选择

来自分类Dev

使用D3将SVG文本元素ID与数据ID匹配

来自分类Dev

是否可以将属性添加为元素?

来自分类Dev

将边框添加到SVG路径d3 JavaScript

来自分类Dev

在D3中将阴影添加到svg图像

来自分类Dev

如何将SVG / d3映射添加到React Native?

来自分类Dev

如何将文本添加到 d3 中的 svg 圆圈

来自分类Dev

D3 v4-将过渡添加为仅缩放而不是平移/拖动

来自分类Dev

D3 / SVG。如何将子级svg元素放置在其父级的范围之外?

来自分类Dev

将d3.js(maps)svg元素添加到现有svg元素顶部时不出现

来自分类Dev

SVG元素的D3多行工具提示

来自分类Dev

D3事件在隐藏的svg元素上触发

来自分类Dev

在d3中获取所选svg元素的类

来自分类Dev

删除d3 svg元素以重画

来自分类Dev

在mouseenter(D3)上放大svg组元素

来自分类Dev

元素上的d3 mouseover与svg mousemove冲突

来自分类Dev

d3 vs. svg处理元素时

来自分类Dev

D3:基于svg元素更改数据

来自分类Dev

为D3和SVG元素创建动画

来自分类Dev

d3 SVG线元素未触发onclick事件

来自分类Dev

如何切换 D3 SVG 元素的位置

来自分类Dev

Python 3:如何将列表中的元素添加为字典的值?