首页 > 解决方案 > 如何使用 D3.js 处理 chrome 和 IE 中用于甜甜圈切片的路径字符串的分隔符?

问题描述

我正在尝试获取使用 d3.js 创建的圆环圆弧切片的四个末端的位置。如果您看到此图: 甜甜圈片 在 IE 中,甜甜圈切片获取以下字符串:

M -318.303 -27.631 A 319.5 319.5 0 0 1 -313.043 -63.9105 L -69.6404 -13.828 A 71 71 0 0 0 -70.7 -6.52054 Z

在 chrome 中,类似的切片为我们提供了以下字符串:

M-312.4,-3.8257966005363313e-14A312.4,312.4 0 0,1 -311.29259530331694,-26.280793544437252L-77.82314882582924,-6.570198386109313A78.1,78.1 0 0,0 -78.1,-9.564491501340828e-15Z

我使用的方法是在使用分隔符''(空格)或','(逗号)分割弧的'd'参数后使用片段。像这样:

var fragment18A = d3.select(this).attr("d").split(",")[18];
var fragment19 = d3.select(this).attr("d").split(",")[19];
var fragment20 = d3.select(this).attr("d").split(",")[20];
var fragment0 = d3.select(this).attr("d").split(",")[0];
var fragment1 = d3.select(this).attr("d").split(",")[1];
var fragment25, fragment26;

如何编写 javascript 代码,让我使用相同的代码在 chrome 和 IE 中获得四个端点?

是一些在 IE 中显示切片时出现问题的旧代码的 js fiddle。不幸的是,js fiddle 在 IE 中不起作用(您必须下载 html 并在本地运行)。

标签: javascriptparsingd3.jssvg

解决方案


推荐阅读