实现 Treeview 多层级节点的折叠,可以使用 SVG 的 `g` 元素和 `transform` 属性来实现。具体步骤如下:
1. 定义一个根节点 `` 元素,并设置它的初始位置。
```html
```
2. 在根节点中添加子节点 `` 元素,并设置它们的相对位置。
```html
```
3. 为每个节点添加一个点击事件,用于切换子节点的可见性。
```html
```
4. 在点击事件处理函数中,使用 `querySelectorAll` 方法查找所有子节点,并使用 `setAttribute` 方法修改它们的 `display` 属性。
```javascript
function toggleNode(evt) {
var node = evt.currentTarget;
var subnodes = node.querySelectorAll("g");
for (var i = 0; i < subnodes.length; i++) {
if (subnodes[i].getAttribute("display") === "none") {
subnodes[i].setAttribute("display", "block");
} else {
subnodes[i].setAttribute("display", "none");
}
}
}
```
完整的示例代码如下:
```html
SVG Treeview