我会再给出一个答案,尽管上面的答案都是大致的。
假设您想在所有浏览器上工作。如果您需要在 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: []},
]}
]
};
我敢肯定还有其他解决方案,我希望您能找到适合您的解决方案。