文档树、目录树、折叠树、一维树实现方案及父子节点文件夹索引样式
作者:秋了秋 发表时间:2021年12月25日
用过代码编辑器的都知道,代码的层次结构可以折叠和展开,其中同级之间还有竖线条连接,这样的样式易于找到同级别元素,在很多应用场景都很适用,比如文档树、目录树。如果树的数据过大渲染太多dom到页面势必会造成性能严重损耗,那么会采取虚拟滚动技术方案只渲染可见区域的数据,所以dom tree就不能有包含父子关系否则会很难处理,最好就是拍平,在dom中表现都是同级别元素,但是在界面显示上却要有层级关系。一维dom树的解决方案我写了个组件qtree,样式大致如下:
特点:
-
一维dom结构,易于做虚拟滚动和动态渲染
-
原生js实现,无其他任何依赖
-
样式美观
使用:
页面引入qtree.js和qtree.css之后使用renderQtreeData渲染数据
renderQtreeData(data, document.getElementById('tree-ul'));
容器元素必须是ul。
data的数据结构:
[ { title: 'xxxxx3333333', id: 3, children: [ { title: 'xxxxx3333333.1', id: 4 }, { title: 'xxxxx3333333.4', id: 7, children: [ { title: 'xxxxx3333333.4.1', id: 8 }, { title: 'xxxxx3333333.4.2', id: 9 }, { title: 'xxxxx3333333.4.3', id: 10 }, ] }, ] }, { title: 'xxxxx4444444', id: 12 } ];
注意:id不能出现重复
代码托管于github:https://github.com/mizuiren/qtree
3
文章作者: “秋了秋”个人博客,本站鼓励原创。
转载请注明本文地址:http://netblog.cn/blog/103.html