小编Ami*_*ana的帖子

用图案填充矩形

我正在使用d3.js作为图表.在某些时候,我必须显示数据与图的一些特殊部分,例如,如果值跨越某个边界然后显示具有填充模式的部分.更清楚的是有和图像.

我得到越过边界的矩形部分,但我怎么能用这种模式填充它?任何CSS或画布技巧?

在此输入图像描述

注意:这个图像只是一个不是真实的例子

javascript css svg d3.js

15
推荐指数
1
解决办法
1万
查看次数

IE9的foreignObject的替代品

我真的很喜欢foreignObject在svg上显示HTML区域,但今天我发现它在IE9中不起作用(为什么我并不感到惊讶)好.所以我正在寻找一种适用于IE9的替代方案,但似乎很难.使用foreignObject显示多个HTML元素的好处.

我的D3.js Force布局图在chrome和FF中工作得很好,但是在IE9中它因为foreignObject而失败.我在Div中添加了许多HTML元素,还有更多的CSS内容.我尝试用其他xhtml:div或xhtml:body替换foreignObject但它不起作用

这是两个小提琴

工作小提琴

需要在IE9上运行

修改小提琴

node.append("foreignObject")
    .attr("class", "simpleDiv")
    .attr("width",50)
    .attr("overflow", "visible")
    .attr("height", 50)
    .append("xhtml:div").attr("class", "mainDiv").style("cursor", hoverStyle)
    .html(function (d) {
       var htmlString = "";
       var userImage = "http://t2.gstatic.com/images?q=tbn:ANd9GcT6fN48PEP2-z-JbutdhqfypsYdciYTAZEziHpBJZLAfM6rxqYX";
       htmlString += "<div class='userImage' style='border-color:" + color(d) + "'><image src='" + userImage + "' width='36' height='36'></image></div>";
       htmlString += "<div class='content' style='color:" + color(d) + ";'>" + d.name + "</div>";
       htmlString += "<div style='clear:both;'></div>";
       return htmlString;
     });
Run Code Online (Sandbox Code Playgroud)

你可以在IE9中测试原始例子也是foreignObject

javascript svg data-visualization internet-explorer-9 d3.js

5
推荐指数
1
解决办法
2624
查看次数

D3缩放功能在Google Chrome中无效

我正在研究svg项目我使用d3.js来获得更好的ui,在我的图表中添加了缩放功能,但奇怪的是它的缩放在Google Chrome中不起作用

svg.call(d3.behavior.zoom().scaleExtent([1, 8]).on("zoom", zoom));

function zoom() {
    svg.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
}
Run Code Online (Sandbox Code Playgroud)

而且我想阻止节点拖动的转换,因为节点和窗格同时拖动,所以它看起来非常难看.这是我的小提琴

测试将左侧元素拖动到右侧div

jquery jquery-ui data-visualization d3.js

5
推荐指数
1
解决办法
1763
查看次数

绘制路径以加入两个节点而不与其他节点相交 + d3.js

我正在使用 d3-flow-tree(此处)将我的树节点显示为流布局。并添加其他 g 元素来表示两个节点之间的连接(通过使用 flow -layout 管理其他图表)。

当绘制从一个节点到另一个节点的链接时,它必须是矩形路径,不会像附加图像那样与其他节点相交 在此处输入图片说明

需要找到可能的可用路径。欢迎任何建议和想法。

提前致谢

javascript data-visualization d3.js

5
推荐指数
1
解决办法
882
查看次数

如何获取tspan元素的位置和宽度

我正在使用d3js,其中lib根据数据创建节点和链接.在某些地方有一些特定的要求,在同一行添加多个文本,如网址"www.xyz.com/home/user"(此处为3个字符串"www.xyz.com","/ home","/ user").它们不是单独的节点,所以我找不到d3的位置.它只是一个带有3个<tspan>子元素的<text>元素.

<text id="TaxFilingResource_URL" class="label url" dy="24" dx="30">
  <tspan id="TaxFilingResource.URL.1">www.xyz.com</tspan>
  <tspan id="TaxFilingResource.URL.2">/home</tspan>
  <tspan id="TaxFilingResource.URL.3">/user</tspan>
</text> 
Run Code Online (Sandbox Code Playgroud)

并在下面显示如下

  www.xyz.com/home/user 
Run Code Online (Sandbox Code Playgroud)

我需要获取每个<tspan>元素的位置和宽度.我的代码是

var el = document.getElementById(d.source);
x = el.getStartPositionOfChar('').x   (or)
x = el.getClientRects().left;
Run Code Online (Sandbox Code Playgroud)

在g元素内的文本上给出相对位置,但在某些浏览器和mac上它将返回绝对位置.

有没有正确的方法可以在JavaScript中找到适用于所有浏览器的tspan的位置和宽度(IE必须>第9版). 在此输入图像描述

html javascript svg d3.js

0
推荐指数
1
解决办法
1480
查看次数