08.02 树的简单样式控制 —— 关于 样式控制

原创
2022/05/09 09:09
阅读数 1.6K

简介

本篇专门介绍一下通过配置就能改变的样式类型 看这篇文档时,你需要对照 API 文档进行学习(http://www.treejs.cn/v3/api.php

节点图标显示开关

setting.view.showIcon

参考 Demo:http://www.treejs.cn/v3/demo.php#_104

这个设置可以让所有节点不显示图标,也可以设置部分节点不显示图标。

// Demo 中设置所有父节点不显示图标
function showIconForTree(treeId, treeNode) {
    return !treeNode.isParent;
};

setting.view.showIcon = showIconForTree;

节点连接线显示开关

setting.view.showLine

参考 Demo:http://www.treejs.cn/v3/demo.php#_103

这个设置可以让树不显示节点间的连接线

setting.view.showLine = false;
  • 如果你增加节点的 高度,包括允许节点自动换行的时候,建议不要显示连接线
  • zTree 的连接线是使用图片实现的,如果你想修改连接线需要去看 zTree 样式中的图标文件,替换所有与连接线相关的部分

是否显示节点的 title 提示信息

setting.view.showTitle

zTree 使用的是 html 默认的 title 属性显示 tooltip 信息,如果你想使用自定义的 tooltip 插件显示,请关闭 zTree 的 提示信息功能。

// 关闭 默认的 tooltip
setting.view.showTitle = false;

节点自定义图标

treeNode.icon / iconOpen / iconClose

参考 Demo:http://www.treejs.cn/v3/demo.php#_105

这三个节点数据的 属性,是用于设置节点自定义图标功能的。 请注意:

  • iconOpen / iconClose 只用于父节点,对于叶子节点无效
  • 图标 url 一定要注意路径准确,否则肯定会加载失败

treeNode.iconSkin

参考 Demo:http://www.treejs.cn/v3/demo.php#_106

这个属性是对 icon 属性的简化,把大量的 url 用 css 进行保存,减少数据量。

很抱歉,早期本人对于节点 className 规则的设计并不完美,所以制作 iconSkin 对应的 样式 略微复杂,请见谅。

样式说明:

  • 样式前面的约束是为了保持 zTree 内的图表样式统一,避免样式冲突。例如:.ztree li span.button
  • 对于父节点 制作两个 css 规则 iconSkin + _ico_openiconSkin + _ico_close
  • 对于叶子节点 制作一个 css 规则 iconSkin + _ico_docu
  • 父节点 与 叶子节点 的 规则各自独立
// iconSkin = 'pIcon01'
.ztree li span.button.pIcon01_ico_open{margin-right:2px; background: url(../../../css/zTreeStyle/img/diy/1_open.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.pIcon01_ico_close{margin-right:2px; background: url(../../../css/zTreeStyle/img/diy/1_close.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}

// iconSkin = 'pIcon02'
// 这种设置,父节点 展开 / 折叠 时图标无变化
.ztree li span.button.pIcon02_ico_open, .ztree li span.button.pIcon02_ico_close{margin-right:2px; background: url(../../../css/zTreeStyle/img/diy/2.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}

// iconSkin = 'icon01'
.ztree li span.button.icon01_ico_docu{margin-right:2px; background: url(../../../css/zTreeStyle/img/diy/3.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}

节点自定义样式

setting.view.fontCss

参考 Demo:http://www.treejs.cn/v3/demo.php#_107 & http://www.treejs.cn/v3/demo.php#_113

专门用于自定义设置节点名称的字体类型、颜色、背景等

注意:

  • 如果修改所有节点的样式,建议直接修改 zTreeStyle.css
  • 建议只修改 font-weight / font-style / color / background-color 这几个样式
  • 修改 font-size,一定要配合修改节点行高的样式:height / line-height;非常不建议只修改个别节点的 font-size
  • 初始化生成节点的 DOM 时,zTree 根据 fontCss 的设置进行样式处理
  • 对于已生成的节点,使用 fontCss 修改样式,务必先修改 fontCss,然后 再执行 updateNode 方法
// 设置 treeNode 为红色
var oldCss = zTreeObj.setting.view.fontCss;
zTreeObj.setting.view.fontCss = {"color": "red"};
zTreeObj.updateNode(treeNode);
// 如果不是使用 function 方式针对特殊节点,一定要在设置后,立刻还原,否则会导致后来创建 DOM 的节点都变为红色
zTreeObj.setting.view.fontCss = oldCss;
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部