我会再给出一个答案,尽管上面的答案都是大致的。
假设您想在所有浏览器上工作。如果您需要在 Internet Explorer 上工作,并编写自己的 Canvas 解决方案,您可能需要包含 ExplorerCanvas。
家谱本质上是二叉树——我知道,现实生活在收养、离婚等方面很棘手,但是让我们暂时假设它们是来自特定人的一个方向(祖先)的二叉树。
JavaScript InfoVis Toolkit 是一个使用 Canvas、具有在 IE 上工作的桥梁并使用简单通用数据格式的好工具。
查看示例:
http://thejit.org/static/v20/Jit/Examples/Spacetree/example2.html
它可能不是您想要的开箱即用,但您可以调整外观。
插件的数据负载非常简单,您的示例如下所示:
var tree = {
id: "ME", // Needs to be internally unique
name: "ME", // Visual label, does not need to match id
data: {}, // not really used here, but parameter needed
children: [
{id: "DAD",
name: "DAD",
data: {},
children: [
{id: "GrDAD1",
name: "GrDAD1",
data: {},
children: []},
{id: "GrMOM1",
name: "GrMOM1",
data: {},
children: []},
]},
{id: "MOM",
name: "MOM",
data: {},
children: [
{id: "GrDAD2",
name: "GrDAD2",
data: {},
children: []},
{id: "GrMOM2",
name: "GrMOM2",
data: {},
children: []},
]}
]
};
我确信还有其他解决方案,我希望您能找到适合您的解决方案。