`

Z-tree实例(六)——连接线、图标、字体样式

阅读更多

主要琢磨ztree的基本属性,如连接线的显示、title的显示、以及icon和font等的设置。

页面结构如下:

<BODY>
<div class="content_wrap">
<div class="zTreeDemoBackground left">
	<ul id="treeDemo" class="ztree"></ul>
</div>

<div class="right">
<a href="javascript:void(0);" id="changeName">换名字</a><br /><br />   
<a href="javascript:void(0);" id="changeColor">换颜色</a><br /><br />
<a href="javascript:void(0);" id="changeIcon">换图标</a><br /><br />
<a href="javascript:void(0);" id="changeFont">倾斜</a><br /><br />
</div>
</div>
</BODY>

 CSS样式为:

<style type="text/css">
.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}
.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}
.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}
.ztree li span.button.icon02_ico_docu{margin-right:2px; background: url(css/zTreeStyle/img/diy/4.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.icon03_ico_docu{margin-right:2px; background: url(css/zTreeStyle/img/diy/5.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.icon04_ico_docu{margin-right:2px; background: url(css/zTreeStyle/img/diy/6.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.icon05_ico_docu{margin-right:2px; background: url(css/zTreeStyle/img/diy/7.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.icon06_ico_docu{margin-right:2px; background: url(css/zTreeStyle/img/diy/8.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.icon07_ico_docu{margin-right:2px; background: url(css/zTreeStyle/img/diy/9.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
.ztree li span.button.icon08_ico_docu{margin-right:2px; background: url(css/zTreeStyle/img/diy/9.png) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
</style>

JS代码:

var setting = {
	view: {
		showLine: true,//不显示连接线,默认值true
		showIcon:true,//是否显示节点的图标(包括父级的文件夹图标子级的文件图标都不显示),默认值true
		showTitle:true,//是否显示节点的title提示信息,默认为true(如果 setting.view.showTitle = true & setting.data.key.title = '',zTree 会自动使用 setting.data.key.name 指定的节点名称当做 title)
		//fontCss:个性化文字样式,JSON格式的数据
		//fontCss: {'font-weight':'bold','color':'#058'}//统一设置样式
		fontCss:getFontCss,//设置自定义的样式
		nameIsHTML:true//设置name属性是否支持HTML脚本,默认值为false
		},
	data: {
		simpleData: {
		enable: true,//是否使用简单数据模式,默认为false,如果设置为 true,请务必设置 setting.data.simpleData 内的其他参数: idKey / pIdKey / rootPId,并且让数据满足父子关系。
		idKey:"id",//节点数据中保存唯一标识的属性名称,默认值id,开启简单数据模式时有效
		pIdKey:"pId",//节点数据中保存其父节点唯一标识的属性名称。默认值pId,开启简单数据模式时有效
		rootPId:0//用于修正根节点父节点数据,即 pIdKey 指定的属性值,默认值为null,开启简单数据模式时有效
		}
	}
};

var zNodes=[
{"id":1,"pId":0,"name":"河北(使用icon自定义图标不同)",open:true,isParent:true,
	iconOpen:"css/zTreeStyle/img/diy/1_open.png", 
	iconClose:"css/zTreeStyle/img/diy/1_close.png",
	url:"http://www.baidu.com",target:"_blank"
},
{"id":2,"pId":1,"name":"石家庄(使用icon自定义图标相同)",open:true,icon:"css/zTreeStyle/img/diy/4.png"},
{"id":21,"pId":2,"name":"化皮镇",icon:"css/zTreeStyle/img/diy/2.png"},
{"id":22,"pId":2,"name":"承安镇",icon:"css/zTreeStyle/img/diy/3.png"},
{"id":23,"pId":2,"name":"正莫镇",icon:"css/zTreeStyle/img/diy/5.png"},

{"id":3,"pId":1,"name":"邯郸",url:"http://www.baidu.com",target:"_self",icon:"css/zTreeStyle/img/diy/6.png"},
{"id":4,"pId":1,"name":"保定",icon:"css/zTreeStyle/img/diy/7.png"},
{"id":5,"pId":1,"name":"沧州",icon:"css/zTreeStyle/img/diy/8.png"},

{"id":6,"pId":0,"name":"河南(使用iconSkin自定义图标不同)",open:true,isParent:true,iconSkin:"pIcon01"},
{"id":7,"pId":6,"name":"郑州",iconSkin:"icon01"},
{"id":8,"pId":6,"name":"开封",iconSkin:"icon02"},
{"id":9,"pId":6,"name":"洛阳",iconSkin:"icon03"},
{"id":10,"pId":6,"name":"南阳",iconSkin:"icon04"},

{"id":11,"pId":0,"name":"山东(使用iconSkin自定义图标相同)",open:true,isParent:true,iconSkin:"pIcon02"},
{"id":12,"pId":11,"name":"济南",iconSkin:"icon05"},
{"id":13,"pId":11,"name":"济宁",iconSkin:"icon06"},
{"id":14,"pId":11,"name":"淄博",iconSkin:"icon07"},
{"id":15,"pId":11,"name":"德州",iconSkin:"icon08"},

{"id":16,"pId":0,"name":"山西(使用默认图标)",open:true,isParent:true,font:{'font-weight':'bold','color':'#058'}},
{"id":17,"pId":16,"name":"太原",font:{'font-style':'italic'}},
{"id":18,"pId":16,"name":"大同", font:{'background-color':'black', 'color':'white'}},
{"id":19,"pId":16,"name":"朔州", font:{'color':'#058'}},
{"id":20,"pId":16,"name":"<span style='color:blue;margin-right:0px;'>阳</span><span style='color:red;margin-right:0px;'>泉</span>"},
{"id":21,"pId":16,"name":"吕梁(默认字体)"}
];

//该方法用来设置节点的样式
function getFontCss(treeId, node) {
	return node.font ? node.font : {};
}

//该方法用来修改选中节点的信息
var nameCount = 0,iconCount = 1,color = [0, 0, 0];
function updateNode(e){
	var zTree = $.fn.zTree.getZTreeObj("treeDemo");//获取ztree对象
	var type = e.data.type;
	var nodes = zTree.getSelectedNodes();//获取选中的节点
	if(nodes.length<=0){
		alert("请先选择一个节点");
		return false;
	}

	for (var i=0, l=nodes.length; i<l; i++) {
			zTree.setting.view.fontCss = {};
			switch(type){
				case "name":{
					nodes[i].name = nodes[i].name.replace(/_[\d]*$/g, "") + "_" + (nameCount++);
					break;
				}
				case "icon":{
					if (iconCount > 7) {
						iconCount = 1;
						nodes[i].iconSkin = "icon01";
					} else if (nodes[i].isParent) {
						nodes[i].iconSkin = nodes[i].iconSkin ? null : "pIcon01";
					} else {
						nodes[i].iconSkin = "icon0" + (iconCount++)+"";
					}
					break;
				}
				case "color":{
					color = [0, 0, 0];
					var r1 = Math.round(Math.random()*3 - 0.5);
					color[r1] = 15;
					var r2 = Math.round(Math.random()*3 - 0.5);
					while (r2 === r1) {
						r2 = Math.round(Math.random()*3 - 0.5);
					}
					color[r2] = Math.round(Math.random()*16-0.5);
					zTree.setting.view.fontCss["color"] = "#"+color[0].toString(16)+color[1].toString(16)+color[2].toString(16);
					break;
				}
				case "font":{
					var style = $("#" + nodes[i].tId + "_a").css("font-style") ;
					style = (style=="italic" ? "normal" : "italic");
					zTree.setting.view.fontCss["font-style"] = style;
					break;
				}
			}
			zTree.updateNode(nodes[i]);
		}
}

$(document).ready(function(){
	$.fn.zTree.init($("#treeDemo"), setting, zNodes);
	//为四个按钮绑定事件
	$("#changeName").bind("click", {type:"name"}, updateNode);//重命名
	$("#changeColor").bind("click", {type:"color"}, updateNode);//换颜色
	$("#changeIcon").bind("click", {type:"icon"}, updateNode);//换图标
	$("#changeFont").bind("click", {type:"font"}, updateNode);//倾斜
});

 

分享到:
评论

相关推荐

    z-tree实例(二)——异步加载

    本实例将深入探讨`z-tree`如何实现异步加载功能。 异步加载的核心在于只在需要时才获取数据,而不是一次性加载所有数据,这减少了初始加载时间,提高了网页响应速度,尤其是在数据量庞大的情况下。`z-tree`通过API...

    z-tree的实例

    **z-tree简介** z-tree是一款基于JavaScript开发的可高度自定义的树形控件,它在Web应用中常用于展示层级结构...而"trm"文件可能是z-tree实例的具体代码或数据,解压并分析该文件对于学习和实践z-tree的使用至关重要。

    el-tree创建结构线,并且可拖动

    el-tree创建结构线,并且可拖动

    z-Tree_Tutorial_说明书

    ### z-Tree:实验经济学软件教程 #### 一、关于z-Tree z-Tree(Zurich Toolbox for Readymade Economic Experiments)是一款由瑞士研发的实验经济学专用软件,旨在为经济实验提供一个灵活且功能强大的平台。该软件...

    el-tree-selected-tree

    `el-tree-selected-tree` 描述的就是这样一个功能,它实现了在主`el-tree`之外,单独拉出一个展示已选中节点的树,并支持在该树上删除选中节点。 首先,我们需要理解`el-tree`的基本用法。`el-tree`通过`data`属性...

    z-tree树 demo

    6. **自定义样式和图标**:z-tree允许开发者通过CSS样式和节点属性来自定义树的外观,包括节点的颜色、字体、图标等。这为创建符合网站风格的树形菜单提供了极大的便利。 7. **兼容性和适应性**:z-tree作为基于...

    z-tree很好用的一个传统树

    1. **可配置性**:z-tree提供了大量的配置选项,允许开发者根据项目需求定制树节点的行为和样式,如节点展开/折叠、选择模式、多选功能等。 2. **数据驱动**:z-tree支持JSON数据格式,可以方便地与后台数据接口...

    z-tree-demo工具

    4. **样式自定义**:z-tree允许开发者通过CSS样式来自定义节点的外观,包括图标、颜色、字体等,以满足不同设计需求。 5. **异步加载**:对于大型数据集,z-tree支持动态加载子节点,即当用户展开一个节点时,仅...

    z-tree API文档网页版

    **z-tree API文档网页版** `z-tree`是一款基于JavaScript实现的树形控件,广泛应用于Web开发中,用于展示层级关系的数据。本压缩包包含了官方的API文档和示例,是开发者学习和使用`z-tree`的重要参考资料。 1. **z...

    z-tree 所需的js和css文件,附带一个版本的jq文件

    开发者可以通过修改这些样式来自定义Z-Tree的视觉效果,以满足项目需求。 提到jQuery,这是一款非常流行的JavaScript库,简化了DOM操作、事件处理和AJAX交互。Z-Tree可以与jQuery无缝集成,利用其强大的功能。在...

    z-tree超级好的树状组件

    showLine: true, // 是否显示连接线 selectedMulti: false // 是否允许多选 }, data: { simpleData: { enable: true // 开启简单数据模式 } } }; var zNodes = [ { name: "父节点1", children: [{ name: ...

    i-Tree最新版2019年中文操作手册

    - i-Tree Design:这是一个简易的在线评估平台,连接Google地图,让使用者了解树木选择、大小及位置如何影响能源使用和其他效益。 - i-Tree Canopy:这个工具使用Google Maps航空图像,产生土地覆盖类型的统计性...

    KD-Tree 开源实现以及 OpenCV KD-Tree 使用

    KD-Tree 开源实现以及 OpenCV KD-Tree 使用

    vue el-tree 默认展开第一个节点的实现代码

    根据提供的文件信息,关于“vue el-tree 默认展开第一个节点的实现代码”这一主题,我们可以梳理出以下知识点: 1. Vue.js与Element UI库:本文内容适用于使用Vue.js框架结合Element UI组件库的开发者。Element UI...

    z-tree,增删改查

    在IT行业中,"z-tree"通常指的是一个JavaScript库,用于创建可自定义的树形控件,常用于数据管理和展示。这个控件以其灵活性和高效性而受到开发者的青睐,尤其是在构建具有层级结构的数据界面时。"增删改查"(CRUD,...

    device-tree-xlnx-xilinx-v2018.3

    《Xilinx嵌入式系统设备树详解——基于device-tree-xlnx-xilinx-v2018.3》 在嵌入式系统开发中,设备树(Device Tree)扮演着至关重要的角色,它是一种用于描述硬件配置的数据结构,使得操作系统内核能够更灵活地...

    基于z-tree树形结构的多级下拉选择列表

    6. **样式调整**:为了使其适应下拉选择列表的外观,可能需要对Z-Tree的默认样式进行定制,使其与你的项目风格保持一致。 7. **交互优化**:考虑添加搜索功能,使用户能快速找到特定的节点,或者添加懒加载机制,只...

    kd-tree的基本教程PDF

    ### KD-Tree基本教程知识点概览 #### 一、引言与背景介绍 - **教程来源**:本教程来源于Andrew W. Moore博士论文的一部分——《Efficient Memory-based Learning for Robot Control》,该章节专用于KD-Tree及其在...

    树状结构插件 z-tree 功能强大, 便于操作

    showLine: true, // 是否显示连接线 showIcon: true, // 是否显示节点图标 }, data: { simpleData: { enable: true, // 开启简单数据模式 idKey: "id", // 节点ID字段 pIdKey: "pId", // 父节点ID字段 root...

    device-tree-compiler安装包以及依赖包

    device-tree-compiler_1.4.7-1_amd64.deb 安装包以及其依赖包。 在ubuntu 22.04上离线安装测试可行。推荐大家使用 总共hi三个包,分别是 libfdt1_1.4.7-1_amd64.deb libfdt-dev_1.4.7-1_amd64.deb device-tree-...

Global site tag (gtag.js) - Google Analytics