Removed_网页设计 ztree v3.5 css分解与dom结构说明33
前端框架中的节点操作与 DOM 操作技巧
前端框架中的节点操作与 DOM 操作技巧在前端开发中,节点操作与 DOM(文档对象模型)操作是非常常见且重要的技术。
节点操作指的是对网页中的元素进行增删改的操作,而 DOM 操作则是对整个文档进行访问与操作的方式。
在前端框架中,如何高效地进行节点操作与 DOM 操作是前端开发人员需要掌握的关键技巧之一。
一、节点操作技巧1. 查找元素在前端开发中,经常需要通过元素的标签名、类名、ID等属性来查找相应的元素。
在使用原生 JavaScript 进行节点操作时,可以使用以下方法来查找元素:- getElementById: 通过元素的 ID 查找元素。
- getElementsByClassName: 通过元素的类名查找元素。
- getElementsByTagName: 通过元素的标签名查找元素。
- querySelector: 通过 CSS 选择器查找元素。
当使用前端框架如 Vue.js 或 React.js 等进行开发时,它们通常提供了更便捷的方式来查找元素。
例如,在 Vue.js 中可以使用 v-bind 或 v-on 指令来绑定、监听元素,而不再需要显式地使用上述原生 JavaScript 方法。
2. 创建与插入元素在前端开发中,需要动态地创建新的元素并将其插入到相应的位置。
使用原生JavaScript 进行元素的创建与插入操作可以使用以下方法:- createElement: 创建新的元素节点。
- appendChild: 将元素插入到父元素的子元素列表的末尾。
- insertBefore: 将元素插入到指定位置的前面。
当使用前端框架进行开发时,可以直接使用框架提供的特定方式来创建与插入元素。
例如,在 Vue.js 中可以使用 v-for 指令来循环渲染元素,并使用 v-if、v-show 指令来动态显示或隐藏元素。
3. 修改与删除元素在前端开发中,经常需要修改或删除已经存在的元素。
使用原生 JavaScript 进行元素的修改与删除操作可以使用以下方法:- innerHTML: 设置或获取元素的 HTML 内容。
dom结构类型 -回复
dom结构类型-回复DOM结构类型简介及应用领域[DOM结构类型]是指文档对象模型(Document Object Model)中的三种基本节点类型:元素节点、文本节点和属性节点。
DOM是一种用于表示和处理网页文档的API,它将整个页面以一棵树的形式进行组织和访问,开发人员可以通过DOM接口来操作和修改页面的内容和样式。
DOM结构类型的应用非常广泛,以下将逐步介绍并深入讨论这三种节点类型的具体特点和应用领域。
第一步:元素节点元素节点是DOM树中的核心节点类型,代表HTML或XML文档中的各个标签。
每个网页都是由一个或多个元素节点组成的。
元素节点具有以下特点:1. 标签名:元素节点的名称由HTML或XML中的标签名决定,例如`<div>`、`<p>`、`<img>`等。
2. 属性:元素节点可以拥有零到多个属性,属性用于定义元素的额外信息,例如`<img src="image.jpg" alt="image">`中的`src`和`alt`就是该元素节点的属性。
3. 子节点:元素节点可以包含零到多个子节点,这些子节点可以是元素节点、文本节点或其他类型的节点。
元素节点广泛应用于网页开发中,通过操作元素节点,可以实现许多功能,例如:- 动态添加、删除或修改网页的各个元素,改变页面的结构和布局。
- 获取元素节点的属性值,例如修改或获取表单元素的值。
- 通过元素节点进行事件绑定,实现交互效果,例如点击一个按钮时触发某个事件。
第二步:文本节点文本节点是DOM树中的叶子节点,代表HTML或XML文档中的文本内容。
文本节点具有以下特点:1. 文本内容:文本节点的内容就是HTML或XML文档中的文本信息,例如`<p>Hello World</p>`中的`Hello World`就是该文本节点的内容。
2. 父节点:文本节点总是作为元素节点的子节点存在,没有直接包含其他节点。
树结构数据的展示和编辑-zTree树插件的简单使用
树结构数据的展⽰和编辑-zTree树插件的简单使⽤最近在项⽬当中遇到⼀个需求,需要以树结构的⽅式展⽰⼀些数据,并可对每⼀个树节点做内容的编辑以及树节点的添加和删除,刚好听说有zTree这个插件可以实现这样的需求,所以在项⽬的这个需求完成之后,在博客⾥⽤⼀个⼩demo的形式记录⼀下zTree的简单实⽤⽅法。
1、下载zTree插件zTree的官⽹地址是:下载地址是:2、引⼊相应的css和js⽂件 zTreeStyle.cssjquery.min.jsjquery.ztree.core.min.jsjquery.ztree.excheck.min.jsjquery.ztree.exedit.min.js3、不说废话,直接代码,简洁明了<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>zTree的简单实⽤</title><link rel="stylesheet" href="zTreeStyle.css"><script src="jquery.min.js"></script><script src="jquery.ztree.core-3.5.min.js"></script><script src="jquery.ztree.excheck-3.5.min.js"></script><script src="jquery.ztree.exedit-3.5.min.js"></script><style>.ztree li {line-height: 25px;}.ztree li span.button.switch {height: 20px;margin-top: -7px;}.ztree li span.button.ico_open,.ztree li span.button.ico_close {background-image: none; width: 0px;margin-left: -2px;}.ztree li span.button.ico_docu {background-image: none; width: 0px;}.ztree li a {height: 25px;}.ztree li span {font-size: 14px;font-family: "PingFang SC", "Hiragino GB", "Microsoft YaHei", "Helvetica Neue", "Helvetica", "ARIAL"}.ztree li a.curSelectedNode {height: 18px;}.ztree li a.curSelectedNode_Edit{height: 18px;}.ztree li a.curSelectedNode_Edit span {display: inline-block;height: 18px;}.ztree li a.curSelectedNode_Edit input {display: inline-block;height: 18px;font-size: 14px;width: 100%;min-width: 150px;font-family: "PingFang SC", "Hiragino GB", "Microsoft YaHei", "Helvetica Neue", "Helvetica", "ARIAL" .ztree li a.curSelectedNode {max-width: 260px;overflow: hidden;}.ztree li span {max-width: 185px;display: inline-block;overflow: hidden;}.ztree li span input{width: 150px;}.ztree li span.button.add {margin-left: 2px;background-position: -144px 0;vertical-align: top;background-image: url(imgs/jui.png);background-position-x: -278px;background-position-y: -237px;}.ztree li span.button.edit {margin-left: 3px;background-position: -144px 0;vertical-align: top;background-image: url(imgs/jui.png);background-position-x: 2px;background-position-y: 3px;}.ztree li span.button.remove {background-position: -144px 0;vertical-align: top;background-image: url(imgs/jui.png);background-position-x: -138px;background-position-y: -137px;}.ztree li span.button.roots_close, .ztree li span.button.root_close, .ztree li span.button.center_close, .ztree li span.button.bottom_close{background-image: url(imgs/jui.png);background-position-x: -77px;background-position-y: -196px;}.ztree li span.button.roots_open, .ztree li span.button.root_open, .ztree li span.button.center_open, .ztree li span.button.bottom_open{background-image: url(imgs/jui.png);background-position-x: -117px;background-position-y: -196px;}</style></head><body><div><ul id="treeDemo" class="ztree"></ul></div></body><script>//zTree的配置var setting = {view: {addHoverDom: addHoverDom,removeHoverDom: removeHoverDom,selectedMulti: false},edit: {enable: true,editNameSelectAll: true,showRemoveBtn: showRemoveBtn,showRenameBtn: showRenameBtn},data: {simpleData: {enable: true}},callback: {onClick:zTreeOnClick, //点击选中事件 beforeDrag: beforeDrag, // 可设置是否允许拖拽功能beforeEditName: beforeEditName,beforeRemove: beforeRemove,beforeRename: beforeRename,onRemove: onRemove,onRename: onRename}};//zTree初始化加载的节点树var zNodes =[{ id:1, pId:0, name:"⽗节点 1", open:true}, //open属性的值true和false,表⽰是否在初始化加载后展开⼦节点{ id:11, pId:1, name:"⼦节点 1-1"},{ id:12, pId:1, name:"⼦节点 1-2"},{ id:13, pId:1, name:"⼦节点 1-3"},{ id:2, pId:0, name:"⽗节点 2", open:true},{ id:21, pId:2, name:"⼦节点 2-1"},{ id:22, pId:2, name:"⼦节点 2-2"},{ id:23, pId:2, name:"⼦节点 2-3"},{ id:3, pId:0, name:"⽗节点 3", open:false},{ id:31, pId:3, name:"⼦节点 3-1"},{ id:32, pId:3, name:"⼦节点 3-2"},{ id:33, pId:3, name:"⼦节点 3-3"},];var log, className = "dark";function zTreeOnClick(event, treeId, treeNode) {console.log('zTreeOnClick');console.log(treeNode)var treeObj = $.fn.zTree.getZTreeObj("treeDemo"),nodes = treeObj.getCheckedNodes(true),v = "";for (var i = 0; i < nodes.length; i++) {v += nodes[i].name + ",";console.log("节点id:" + nodes[i].id + "节点名称" + v); //获取选中节点的值}}function beforeDrag(treeId, treeNode) { return false; //false=禁⽤拖拽功能, true=开启}function beforeEditName(treeId, treeNode) {console.log('beforeEditName');console.log(treeNode)className = (className === "dark" ? "":"dark");var zTree = $.fn.zTree.getZTreeObj("treeDemo");zTree.selectNode(treeNode);zTree.editName(treeNode);}function beforeRemove(treeId, treeNode) {console.log('beforeRemove');className = (className === "dark" ? "":"dark");var zTree = $.fn.zTree.getZTreeObj("treeDemo");zTree.selectNode(treeNode);return confirm("确认删除节点 -- " + + " 吗?");}function onRemove(e, treeId, treeNode) { //确定删除节点console.log('onRemove');console.log(treeNode)}function beforeRename(treeId, treeNode, newName, isCancel) {console.log('beforeRename');className = (className === "dark" ? "":"dark");if (newName.length == 0) {setTimeout(function() {var zTree = $.fn.zTree.getZTreeObj("treeDemo");zTree.cancelEditName();alert("节点名称不能为空。
zTree插件使用
zTree的学习使用1.引进三个头文件<link href="~/Scripts/zTree/css/zTreeStyle/metro.css"rel="stylesheet"/><script src="~/Scripts/zTree/js/jquery-1.4.4.min.js"></script><script src="~/Scripts/zTree/js/jquery.ztree.all-3.5.min.js"></script>[注]第一个是css样式,主要用于显示特效,第二个是jquery,因为zTree也是由jquery写成的,所以jquery必须在zTree的前面引用!第三个是zTree的js,包含其里面一些特殊的效果! 2.在页面中放置容器和ul,用于显示zTree的内容和效果<body><div class="container"><ul class="ztree"id="tree"style="width:560px;overflow:auto;"></ul></div><script type="text/javascript">//zTreejs代码部分</script></body>3.zTree树部分<script type="text/javascript">var zTree;var demoIframe;//添加功能function addHoverDom(treeId, treeNode) {var sObj = $("#" + treeNode.tId + "_span");if (treeNode.editNameFlag || $("#addBtn_" + treeNode.tId).length > 0) return;//在树节点的后面增加添加和编辑按钮var addStr = "<span class='button remove' id='removeBtn_"+treeNode.tId+ "' title='add node' onfocus='this.blur();'></span>";addStr += "<span class='button add' id='addBtn_"+treeNode.tId+"'></span>";addStr += "<span class='button edit' id=editBtn_" + treeNode.tId + "'></span>";sObj.after(addStr);var btn = $("#addBtn_" + treeNode.tId);//点击添加按钮if (btn) btn.bind("click", function () {var zTree = $.fn.zTree.getZTreeObj("treeDemo");zTree.addNodes(treeNode, { id: (1000 + newCount), pId: treeNode.id, name: "new node" + (newCount++) });returnfalse;});}//删除功能function removeHoverDom(treeId, treeNode) {$("#addBtn_" + treeNode.tId).unbind().remove(); $("#editBtn_" + treeNode.tId).unbind().remove(); $("#removeBtn_"+treeNode.tId).unbind().remove(); }//树节点的设置var setting = {//添加checkbox,true为有,false为没有check: {enable: true},//添加特殊的控件view: {addHoverDom: addHoverDom,//添加按钮removeHoverDom: removeHoverDom,//移除按钮dbClickExpand: false,//双击不可用selectedMulti: false,//多选不可用},//数据格式data: {//简单数据类型simpleData: {enable: true,idKey: "id",//节点pIdKey: "pId",//父节点rootPId: ""//根节点}},//回发操作callback: {//点击之前beforeClick: function (treeId, treeNode) {var zTree = $.fn.zTree.getZTreeObj("tree");//判断是否是父节点if (treeNode.isParent) {zTree.expandNode(treeNode);returnfalse;}else {demoIframe.attr("src", treeNode.file + ".html");returntrue;}}}};//树节点内的内容var zNodes = [//基本功能演示{ id: 1, pId: 0, name: "[core] 基本功能演示", open: true },{ id: 101, pId: 1, name: "最简单的树 -- 标准 JSON 数据", file:"core/standardData" },{ id: 102, pId: 1, name: "最简单的树 -- 简单 JSON 数据", file:"core/simpleData" },{ id: 103, pId: 1, name: "不显示连接线", file: "core/noline" },{ id: 104, pId: 1, name: "不显示节点图标", file: "core/noicon" },{ id: 105, pId: 1, name: "自定义图标 -- icon 属性", file: "core/custom_icon" }, { id: 106, pId: 1, name: "自定义图标 -- iconSkin属性", file:"core/custom_iconSkin" },{ id: 107, pId: 1, name: "自定义字体", file: "core/custom_font" },{ id: 115, pId: 1, name: "超链接演示", file: "core/url" },{ id: 108, pId: 1, name: "异步加载节点数据", file: "core/async" },{ id: 109, pId: 1, name: "用zTree方法异步加载节点数据", file: "core/async_fun" }, { id: 110, pId: 1, name: "用zTree方法更新节点数据", file: "core/update_fun" }, { id: 111, pId: 1, name: "单击节点控制", file: "core/click" },{ id: 112, pId: 1, name: "展开 / 折叠父节点控制", file: "core/expand" },{ id: 113, pId: 1, name: "根据参数查找节点", file: "core/searchNodes" },{ id: 114, pId: 1, name: "其他鼠标事件监听", file: "core/otherMouse" },//复/单选框功能{ id: 2, pId: 0, name: "[excheck] 复/单选框功能演示", open: false },{ id: 201, pId: 2, name: "Checkbox 勾选操作", file: "excheck/checkbox" },{ id: 206, pId: 2, name: "Checkbox nocheck演示", file: "excheck/checkbox_nocheck"}, { id: 207, pId: 2, name: "Checkbox chkDisabled演示", file:"excheck/checkbox_chkDisabled" },{ id: 208, pId: 2, name: "Checkbox halfCheck演示", file:"excheck/checkbox_halfCheck" },{ id: 202, pId: 2, name: "Checkbox 勾选统计", file: "excheck/checkbox_count" }, { id: 203, pId: 2, name: "用zTree方法勾选 Checkbox", file:"excheck/checkbox_fun" },{ id: 204, pId: 2, name: "Radio 勾选操作", file: "excheck/radio" },{ id: 209, pId: 2, name: "Radio nocheck演示", file: "excheck/radio_nocheck" }, { id: 210, pId: 2, name: "Radio chkDisabled演示", file:"excheck/radio_chkDisabled" },{ id: 211, pId: 2, name: "Radio halfCheck演示", file: "excheck/radio_halfCheck"}, { id: 205, pId: 2, name: "用zTree方法勾选 Radio", file: "excheck/radio_fun" }, //编辑功能演示{ id: 3, pId: 0, name: "[exedit] 编辑功能演示", open: false },{ id: 301, pId: 3, name: "拖拽节点基本控制", file: "exedit/drag" },{ id: 302, pId: 3, name: "拖拽节点高级控制", file: "exedit/drag_super" },{ id: 303, pId: 3, name: "用zTree方法移动 / 复制节点", file: "exedit/drag_fun" }, { id: 304, pId: 3, name: "基本增 / 删 / 改节点", file: "exedit/edit" },{ id: 305, pId: 3, name: "高级增 / 删 / 改节点", file: "exedit/edit_super" },{ id: 306, pId: 3, name: "用zTree方法增 / 删 / 改节点", file: "exedit/edit_fun"}, { id: 307, pId: 3, name: "异步加载&编辑功能共存", file: "exedit/async_edit" }, { id: 308, pId: 3, name: "多棵树之间的数据交互", file: "exedit/multiTree" },//大数据演示{ id: 4, pId: 0, name: "大数据量演示", open: false },{ id: 401, pId: 4, name: "一次性加载大数据量", file: "bigdata/common" },{ id: 402, pId: 4, name: "分批异步加载大数据量", file: "bigdata/diy_async" },{ id: 403, pId: 4, name: "分批异步加载大数据量", file: "bigdata/page" },//组合功能演示{ id: 5, pId: 0, name: "组合功能演示", open: false },{ id: 501, pId: 5, name: "冻结根节点", file: "super/oneroot" },{ id: 502, pId: 5, name: "单击展开/折叠节点", file: "super/oneclick" },{ id: 503, pId: 5, name: "保持展开单一路径", file: "super/singlepath" },{ id: 504, pId: 5, name: "添加自定义控件", file: "super/diydom" },{ id: 505, pId: 5, name: "checkbox / radio 共存", file: "super/checkbox_radio" }, { id: 506, pId: 5, name: "左侧菜单", file: "super/left_menu" },{ id: 513, pId: 5, name: "OutLook样式的左侧菜单", file:"super/left_menuForOutLook" },{ id: 507, pId: 5, name: "下拉菜单", file: "super/select_menu" },{ id: 509, pId: 5, name: "带 checkbox 的多选下拉菜单", file:"super/select_menu_checkbox" },{ id: 510, pId: 5, name: "带 radio 的单选下拉菜单", file:"super/select_menu_radio" },{ id: 508, pId: 5, name: "右键菜单的实现", file: "super/rightClickMenu" },{ id: 511, pId: 5, name: "与其他 DOM 拖拽互动", file: "super/dragWithOther" }, { id: 512, pId: 5, name: "异步加载模式下全部展开", file: "super/asyncForAll" }, //其他扩展功能演示{ id: 6, pId: 0, name: "其他扩展功能演示", open: false },{ id: 601, pId: 6, name: "隐藏普通节点", file: "exhide/common" },{ id: 602, pId: 6, name: "配合 checkbox 的隐藏", file: "exhide/checkbox" },{ id: 603, pId: 6, name: "配合 radio 的隐藏", file: "exhide/radio" }];//初始化树$(document).ready(function () {var t = $("#tree");t = $.fn.zTree.init(t, setting, zNodes);demoIframe = $("#testIframe");demoIframe.bind("load", loadReady);var zTree = $.fn.zTree.getZTreeObj("tree");zTree.selectNode(zTree.getNodeByParam("id",101));});//数据加载function loadReady() {var bodyH = demoIframe.contents().find("body").get(0).scrollHeight, htmlH = demoIframe.contents.find("html").get(0).scrollHeight, maxH = Math.max(bodyH, htmlH), minH = Math.min(bodyH, htmlH),h = demoIframe.height() >= maxH ? minH :maxH;if (h < 530) h = 530;demoIframe.height(h);}</script>4.显示的效果。
jQuery树控件zTree使用方法详解(一)
jQuery树控件zTree使⽤⽅法详解(⼀)⼀、节点模糊搜索功能:搜索成功后,⾃动⾼亮显⽰并定位、展开搜索到的节点。
⼆、节点异步加载:1、点击展开时加载数据;2、选中节点时加载数据。
前台代码如下:js:<script type="text/javascript">//ztree设置var setting = {view: {fontCss: getFontCss},check: {enable: true},data: {simpleData: {enable: true,idKey: "id",pIdKey: "pId",rootPId: 0}},async: {enable: true,url: "#{getStudentsJsonUrl}",autoParam: ["id", "level"]},callback: {beforeCheck: zTreeBeforeCheck,onNodeCreated: zTreeOnNodeCreated,beforeExpand: zTreeBeforeExpand}};var reloadFlag = false; //是否重新异步请求var checkFlag = true; //是否选中//节点展开前function zTreeBeforeExpand(treeId, treeNode) {reloadFlag = false;return true;};//节点创建后function zTreeOnNodeCreated(event, treeId, treeNode) {var zTree = $.fn.zTree.getZTreeObj(treeId);if (reloadFlag) {if (checkFlag) {zTree.checkNode(treeNode, true, true);}if (!treeNode.children) {zTree.reAsyncChildNodes(treeNode, "refresh");}}};//选中节点前function zTreeBeforeCheck(treeId, treeNode) {var zTree = $.fn.zTree.getZTreeObj(treeId);if (!treeNode.children) {reloadFlag = true;checkFlag = true;zTree.reAsyncChildNodes(treeNode, "refresh");}return true;}//页⾯加载完成_run(function () {require(['zTree/js/jquery.ztree.all-3.5'], function () {$.ajax({type: "POST",url: "#{getStudentsJsonUrl}",success: function (data) {if (data && data.length != 0) { //如果结果不为空$.fn.zTree.init($("#tree"), setting, data);}else { //搜索不到结果}}});});//提交$("#inputSubmit").click(function () {var zTree = $.fn.zTree.getZTreeObj("tree");var nodes = zTree.getCheckedNodes(true);var ids = "";var names = "";for (var i = 0; i < nodes.length; i++) { //遍历选择的节点集合if (!nodes[i].isParent) {ids += nodes[i].id.replace("level" + nodes[i].level, "") + ",";names += nodes[i].name + ",";}}Simpo.ui.box.hideBox();parent.$(".boxFrm").contents().find("#inputRange").val(names.substr(0, names.length - 1)); parent.$(".boxFrm").contents().find("#hidRange").val(ids.substr(0, ids.length - 1));})});//查找节点var lastNodeList = [];var lastKey;function searchNode() {var zTree = $.fn.zTree.getZTreeObj("tree");var key = $.trim($("#inputSearchNode").val());if (key != "" && key != lastKey) {nodeList = zTree.getNodesByParamFuzzy("name", key);for (var i = 0, l = lastNodeList.length; i < l; i++) { //上次查询的节点集合取消⾼亮lastNodeList[i].highlight = false;zTree.updateNode(lastNodeList[i]);}zTree.expandAll(false); //全部收缩if (nodeList.length > 0) {for (var i = 0, l = nodeList.length; i < l; i++) { //遍历找到的节点集合if (nodeList[i].getParentNode()) {zTree.expandNode(nodeList[i].getParentNode(), true, false, false); //展开其⽗节点}nodeList[i].highlight = true;zTree.updateNode(nodeList[i]);}}zTree.refresh(); // 很重要,否则节点状态更新混乱。
html css树状结构表
html css树状结构表HTML和CSS是前端开发中两个非常重要的技术,它们的组合可以创建出美观且具有结构性的网页。
其中,树状结构表是一种常见的布局方式,可以用来展现父子关系的层级结构。
本文将围绕这一主题展开讨论。
我们需要了解树状结构表的基本概念。
树状结构表是一种以树状形式呈现数据的方式,它由一系列的节点组成,每个节点都可以有一个或多个子节点。
树状结构表常用于展示层级关系,比如网站导航菜单、文件目录等。
在HTML中,我们可以使用无序列表(<ul>)和有序列表(<ol>)来创建树状结构表。
无序列表使用<li>标签表示每个节点,有序列表除了使用<li>标签外,还可以使用<ol>标签的type属性指定编号方式。
通过嵌套使用<ul>和<li>或<ol>和<li>,我们可以构建出多层级的树状结构表。
在CSS中,我们可以通过设置样式来美化树状结构表。
可以为列表设置背景色、边框、内外边距等样式,使其在页面上更加醒目。
此外,还可以通过设置字体、颜色、大小等样式来调整文本的显示效果,使树状结构表更加美观。
除了基本的树状结构表,我们还可以通过使用CSS的伪类选择器和属性选择器来为树状结构表添加交互效果。
比如,可以使用:hover伪类选择器为节点添加鼠标悬停效果,当鼠标悬停在节点上时,改变节点的背景色或文本颜色。
另外,还可以使用:checked伪类选择器和<input>标签来实现树状结构表的展开和折叠功能,点击节点前面的复选框可以展开或折叠该节点的子节点。
在实际应用中,树状结构表常常用于展示网站的导航菜单。
通过合理地组织节点和子节点的层级关系,可以使用户快速找到所需的信息。
此外,树状结构表还可以用于展示文件目录,方便用户查看和管理文件。
总结起来,树状结构表是一种常见的网页布局方式,它通过节点和子节点的层级关系展示数据。
jquery树形插件zTree高级使用详解
jquery树形插件zTree⾼级使⽤详解使⽤⾼级zTree进⾏对属性结构进⾏操作的时候,做好的⽅式是参考官⽹的API⽂档。
本⽂简单介绍下如何通过后台传递过来⼀个树形结构的树,并且通过页⾯进⾏加载。
【与后台交互步骤】1、编写页⾯,引⼊zTree相关插件;2、编写js脚本,设定树形结构的基本属性;3、编写zTree的PO对象;4、编写返回属性结构的⽅法(json格式返回);5、页⾯请求树。
1、引⼊zTree相关的插件:<script type="text/javascript" src="<%=request.getContextPath() %>/resources/js/jquery-1.9.1.min.js"></script><link rel="stylesheet" href="<%=request.getContextPath() %>/resources/bootstrap/3.3.4/css/bootstrap.min.css" ><script type="text/javascript" src="<%=request.getContextPath() %>/resources/bootstrap/3.3.4/js/bootstrap.min.js"></script><!-- 引⼊zTree相关的js/css⽂件 --><link rel="stylesheet" href="<%=request.getContextPath() %>/resources/ztree/zTreeStyle/zTreeStyle.css" ><script type="text/javascript" src="<%=request.getContextPath() %>/resources/ztree/jquery.ztree.all.js"></script>2、编写js脚本,设定树形结构的基本属性// zTree 的参数配置,深⼊使⽤请参考 API ⽂档(setting 配置详解)var setting = {check:{enable: false,//autoCheckTrigger:true,//chkStyle:"none"},callback:{onClick:queryRoleByEmployee}};function queryRoleByEmployee(event, treeId, treeNode){//(treeNode.tId + ", " + + "," + treeNode.checked);//("--------"+treeNode.isParent);if(treeNode.isParent == true){//将⾓⾊的树形结构清楚$.fn.zTree.destroy("roleTree");return ;}$.get('<%=request.getContextPath()%>/'+treeNode.objCode+'/role',{"coddd":treeNode.isParent},function(data){(data);zTreeObj = $.fn.zTree.init($("#roleTree"), settingRole, data);});}3、编写zTree的PO对象public class DimsTree {//除了树本⾝的属性,还可以⾃定义属性.private Object objCode;//树形结构展⽰的名称private String name;//是否打开属性private String open;//是否根节点private boolean isParent;//urlprivate String url;//⼦节点private List<DimsTree> children;//是否被选中private boolean checked;//省略gettings和settings⽅法}4、编写返回属性结构的⽅法(json格式返回)@ResponseBody@RequestMapping(value="/user_role1")public List<DimsTree> userRole1(Model model){//宿舍信息TreeList<DimsTree> dimsTreeList = new ArrayList<DimsTree>();//加载⽤户信息列表,⼿链需要加载宿舍信息,将⽤户信息加⼊到宿舍信息中.List<Dormitory> dormitoiryList = dormitoryDao.list();for(Dormitory dorm: dormitoiryList){DimsTree dt = new DimsTree();dt.setName(dorm.getDormCode());dt.setParent(true);//根节点dt.setObjCode(dorm.getDormCode());dt.setChildren(employee2DimsTree(dorm));dimsTreeList.add(dt);}model.addAttribute(dimsTreeList);//加载⾓⾊信息列表,对已经选中的⾓⾊进⾏设置checked=true属性。
【黑马程序员】Ztree树的简单
【黑马程序员】Ztree树的简单zTree的使用总结1. copy ztree的js和css2.在需要ztree树的页面上引入以下文件<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ztree</title><link rel="stylesheet" href="${pageContext.request.contextPath}/zTree/css/zTreeStyle/zTreeStyle.css" type="text/css"><link rel="stylesheet" href="${pageContext.request.contextPath}/zTree/css/demo.css" type="text/css"> <script type="text/javascript" src="${pageContext.request.contextPath}/zTree/js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/zTree/js/jquery.ztree.core-3.5.js"></script><script type="text/javascript" src="${pageContext.request.contextPath}/zTree/js/jquery.ztree.excheck-3.5.js"></s cript><script type="text/javascript">var setting = {check: {enable: true},data: {simpleData: {enable: true}}};var zNodes=null;$().ready(function() {$.ajax( {url : "${pageContext.request.contextPath}/ztree_getDate",type : "get",dataType : "text",success : function(data){zNodes=eval("("+data+")");zTree=$.fn.zTree.init($("#treeDemo"), setting, zNodes);//展开所有的节点!zTree.expandAll(true);}});});var zTree=null;function formSubmit() {//获取被选中的节点!var nodes=zTree.getCheckedNodes(true);var ids="";for (var i = 0; i < nodes.length; i++) {ids+=nodes[i].id+",";}$("#ids").val(ids);return true;}</script></head><body>//树的位置!<ul id="treeDemo" class="ztree"></ul><form action="${pageContext.request.contextPath}/ztree_saveDate.action" onsubmit="formSubmit()" method="post"><input type="hidden" id="ids" name="ids"><input type="submit" value="测试"></form></body></html>2.1取出数据的方法!public void getDate() throws Exception {StringBuilder sb=new StringBuilder();sb.append("[");//{id:"",pId:"",name:"",checked:""}sb.append("{id:1,pId:0,name:\"腾飞国际有限公司\",checked:\"true\"}").append(",");sb.append("{id:2,pId:1,name:\"秘书部\",checked:\"true\"}").append(",");sb.append("{id:5,pId:2,name:\"潘金莲\",checked:\"false\"}").append(",");sb.append("{id:6,pId:2,name:\"李洁\",checked:\"false\"}").append(",");sb.append("{id:7,pId:2,name:\"小泽阿姨\",checked:\"false\"}").append(",");sb.append("{id:3,pId:1,name:\"财政部\",checked:\"false\"}").append(",");sb.append("{id:8,pId:3,name:\"强豪\",checked:\"false\"}").append(",");sb.append("{id:9,pId:3,name:\"周强\",checked:\"false\"}").append(",");sb.append("{id:10,pId:3,name:\"严超威\",checked:\"false\"}").append(",");sb.append("{id:4,pId:1,name:\"行政部\",checked:\"false\"}");sb.append("]");HttpServletResponse response = ServletActionContext.getResponse();response.setContentType("test/json;charset=UTF-8");response.setHeader("Cache-Control", "no-cache");response.getWriter().write(sb.toString());}2.2提交选中的idprivate String ids;public void setIds(String ids) {this.ids = ids;}public void saveDate() throws Exception {System.out.println(ids);}。
JqueryzTree使用说明
JqueryzTree使⽤说明1.导⼊所需的⽂件<script type="text/javascript" src="vendor/jquery/jquery-1.12.4.js"></script><link type="text/css" href="vendor/zTree/zTreeStyle.css" rel="stylesheet"/><script type="text/javascript" src="vendor/zTree/jquery.ztree.all.min.js"></script>2.建⽴HTML标签进⾏标记<ul id="treeDemo" class="ztree"></ul>3.在JavaScript中进⾏配置和初始化var zTreeObj;// zTree 的参数配置,深⼊使⽤请参考 API ⽂档(setting 配置详解)var setting = {callback: {beforeClick: beforeClick,onClick: treeNodeClick}};// zTree 的数据属性,深⼊使⽤请参考 API ⽂档(zTreeNode 节点数据详解)var zNodes = [{name: "学习", open: true, children: [{name: "jQuery",src: ""},{name: "cnblogs",src: ""}]},{name: "购物", open: false, children: [{name: "淘宝",src: ""},{name: "当当",src: ""}]}];// zTree 的函数编写点击前的事件,点击发⽣事件function beforeClick(treeId, treeNode, clickFlag) {alert(treeNode.src);//treeNode 就是所点击节点的详细信息}function treeNodeClick(event, treeId, treeNode, clickFlag) {alert(treeNode.src);//再此填写点击事件,可以通过不同的参数区分不同事件}$(document).ready(function() {zTreeObj = $.fn.zTree.init($("#treeDemo"), setting, zNodes);});。
Ztree树使用详解
Ztree树使⽤详解0 zTree简介树形控件的使⽤是应⽤开发过程中必不可少的。
zTree 是⼀个依靠 jQuery 实现的多功能 “树插件”。
优异的性能、灵活的配置、多种功能的组合是 zTree 最⼤优点。
0.0 zTree的特点 ·最新版的zTree将核⼼代码按照功能进⾏了分割,不需要的代码可以不⽤加载,如普通使⽤只需要加载核⼼的jquery.ztree.core-3.5.js,需要使⽤勾选功能加载jquery.ztree.excheck-3.5.min.js,需要使⽤编辑功能加载jquery.ztree.exedit-3.5.min.js·采⽤了延迟加载技术,上万节点轻松加载,即使在 IE6 下也能基本做到秒杀·兼容 IE、FireFox、Chrome、Opera、Safari 等浏览器·⽀持 JSON 数据·⽀持静态和 Ajax 异步加载节点数据·⽀持任意更换⽪肤 / ⾃定义图标(依靠css)·⽀持极其灵活的 checkbox 或 radio 选择功能·提供多种事件响应回调·灵活的编辑(增/删/改/查)功能,可随意拖拽节点,还可以多节点拖拽·在⼀个页⾯内可同时⽣成多个 Tree 实例·简单的参数配置实现,灵活多变的功能0.1 zTree⽂件介绍从zTree官⽹下载的zTree包括以下组成部分·metroStyle⽂件夹:zTree的metro风格样式相关⽂件(图⽚及css样式表)。
·zTreeStyle⽂件夹:zTree的标准风格样式⽂件夹(图⽚及css样式表)·js⽂件:zTree.all.js是完整的js库,可单纯加载此⽂件实现所有zTree功能,ztree.core、ztree.excheck、ztree.exedit、ztree.exhide是对ztree按照功能进⾏的分割,分别对应基本功能、复选功能、编辑功能、显隐功能。
ztree培训
zTree V3.x结构
1、js 核心文件
zTree v3.x 有 4个 js 文件,包含以下 核心包 (jquery.ztree.core-3.x.js ), 复选框功能包 (jquery.ztree.excheck-3.x.js ) 编辑功能包 (jquery.ztree.exedit-3.x.js ) 隐藏功能包(jquery.ztree.exhide-3.x.js) 开发中尽量使用jquery.ztree.all-3.x.min.js
<!-- ztree数据,Json形式-->
var nodes =[ { id:1, pId:0, name:”根节点”, open:true}, { id:11, pId:1, name:"子节点1”}, { id:12, pId:1, name:"子节点2"}, { id:13, pId:1, name:"子节点3"} ]; $.fn.zTree.init($("#ztreeContainer"), setting, nodes); }); </script> </body> </html>
2、css 文件
zTree v3.x 使用 zTreeStyle.css 文件,zTree容器样式使用class=‘ztree’ img下包含zTree使用的图标
基本功能
<!DOCTYPE html> <html> <head lang=“zh-cn"> <meta charset="UTF-8"> <title>基本配置</title> <link type="text/css" rel="stylesheet" href="ztree3/css/zTreeStyle/zTreeStyle.css"> </head> <body>
dom结构类型
dom结构类型DOM(文档对象模型)是一种用于表示和操作文档的树状结构的编程接口。
DOM 不是一种具体的编程语言,而是一种描述文档结构的标准。
它提供了一种将文档表示为树形结构的方式,其中每个节点都代表文档中的一个部分,如元素、属性、文本等。
在 DOM 结构中,常见的节点类型包括:1. 元素节点(Element Node):表示 HTML 或 XML 文档中的元素,如 <div>、<p>、<a> 等。
元素节点可以有子节点,如其他元素、文本或属性。
2. 文本节点(Text Node):表示元素中的文本内容。
文本节点是元素节点的子节点,包含在开始和结束标签之间。
3. 属性节点(Attribute Node):表示元素的属性。
属性节点包含在元素节点内,描述了元素的特性。
4. 注释节点(Comment Node):表示注释内容。
注释节点是一种特殊的文本节点,以 <!-- 开始,以 --> 结束。
5. 文档节点(Document Node):表示整个文档。
文档节点是DOM 树的根节点,包含文档的所有内容。
6. 文档类型节点(Document Type Node):表示文档的类型声明。
这通常出现在文档的开头,使用 <!DOCTYPE>。
在使用 JavaScript 操作 DOM 时,可以通过 DOM API 提供的方法来访问和操作这些节点。
例如,使用 getElementById 方法可以获取指定ID 的元素节点,使用createTextNode 方法可以创建文本节点,等等。
通过这些方法,你可以动态地修改文档的内容和结构。
常用的dom方法
常用的dom方法常用的DOM方法包括以下几类:元素选择、节点操作、属性操作、样式操作、事件处理以及动画效果。
一、元素选择:DOM方法可以通过各种方式选择和访问页面上的元素节点。
1. getElementById(id):根据元素的id属性值获取元素节点。
2. getElementsByClassName(className):根据元素的类名获取元素节点。
3. getElementsByTagName(tagName):根据元素的标签名获取元素节点。
4. querySelector(selector):根据CSS选择器选择第一个匹配的元素节点。
5. querySelectorAll(selector):根据CSS选择器选择所有匹配的元素节点。
二、节点操作:DOM方法可以对元素节点进行创建、插入、删除、替换等操作。
1. createElement(tagName):创建一个具有指定标签名的元素节点。
2. createTextNode(text):创建一个包含指定文本内容的文本节点。
3. appendChild(node):将指定节点添加到父节点的子节点列表的最后一个位置。
4. insertBefore(newNode, referenceNode):在参考节点之前插入新节点。
5. removeChild(node):从父节点移除指定的子节点。
6. replaceChild(newNode, oldNode):用新节点替换指定的子节点。
三、属性操作:DOM方法可以获取和修改元素节点的属性值。
1. getAttribute(name):获取元素节点指定属性名的属性值。
2. setAttribute(name, value):设置元素节点指定属性名的属性值。
3. removeAttribute(name):移除元素节点指定属性名的属性值。
四、样式操作:DOM方法可以获取和修改元素节点的样式。
1. className:获取或设置元素节点的class属性值。
ztree的用法
ZTree 是一种基于 jQuery 的树形结构插件,主要用于构建和管理复杂的树形结构数据。
使用 ZTree,首先需要引入相关的 JS 文件和 CSS 文件,然后准备 JSON 格式的树形数据。
在 HTML 中,需要指定一个用于显示树形结构的容器元素,并为其指定一个特定的 ID。
创建 ZTree 的基本步骤如下:
1.引入 ZTree 的 JS 文件和 CSS 文件。
2.准备 JSON 格式的树形数据。
3.在 HTML 中指定一个用于显示树形结构的容器元素,并为其指定一个特定的
ID。
4.使用 jQuery 的$.fn.zTree方法初始化 ZTree。
5.根据需要,可以通过调用 ZTree 的 API 方法来操作树形结构,例如添加节
点、删除节点、展开节点等。
ZTree 提供了一些常用的配置选项,例如check、callback、data等,用于控制树形结构的显示和行为。
同时,ZTree 还支持自定义事件和方法,方便用户根据实际需求进行扩展和定制。
总之,ZTree 是一个功能强大、易于使用和高度可定制的树形结构插件,可以帮助用户快速构建和管理复杂的树形结构数据。
css removestyle 用法
css removestyle 用法“CSS removestyle 用法”是指在网页开发中使用CSS来移除指定样式的方法。
在网页开发过程中,我们经常会遇到需要移除某些元素的默认样式或者通过其他样式表所添加的样式。
这时候,我们就会用到CSS removestyle方法来实现样式的移除。
在本篇文章中,我将一步一步地向您介绍CSS removestyle的用法,包括如何选择要移除的样式,如何使用CSS语法来实现样式的移除,以及一些实际的案例和应用场景。
希望通过本文的阐述,读者们能够更加深入地理解CSS removestyle的用法,并在实际的网页开发中更加灵活地运用这一技巧。
首先,让我们来了解一下CSS removestyle的基本概念。
CSS removestyle就是通过CSS语法来删除指定元素的样式。
在网页开发中,通常情况下我们会使用CSS来添加样式,但有时也需要移除一些默认的或者其他样式表所添加的样式。
这就需要用到CSS removestyle方法。
接下来,我们将介绍CSS removestyle的具体用法。
在CSS中,我们可以通过以下几种方式来实现样式的移除:1.使用通配符来移除全部样式在CSS中,我们可以使用通配符(*)来选择所有的元素,然后将样式设置为默认值或者重置为其他值,从而达到移除全部样式的效果。
比如:css* {margin: 0;padding: 0;}上面的代码中,通配符选择了所有的元素,并将margin和padding设置为0,从而移除了这些元素的默认样式。
2.使用!important关键字来覆盖样式在CSS中,我们可以使用!important关键字来覆盖指定元素的样式,从而达到移除样式的效果。
比如:cssp {color: red !important;}在上面的代码中,我们将p元素的color样式设置为红色,并使用了!important 关键字来覆盖其他样式表中可能会添加的color样式,从而实现了移除样式的效果。
DOM的解析渲染流程
DOM的解析渲染流程
⼀、⼤致分为五步:
1.解析HTML
2.构建DOM树
3.DOM树与CSS样式进⾏附着构造呈现树
4.布局
5.绘制
⼆、解析渲染过程
1.DOM Tree:浏览器将HTML解析成树形的数据结构。
2.CSS Rule Tree:浏览器将CSS解析成树形的数据结构。
3.Render Tree: DOM和CSSOM合并后⽣成Render Tree(渲染树)。
yout: 有了Render Tree,浏览器已经能知道⽹页中有哪些节点、各个节点的CSS定义以及他们的从属关系,从⽽去计算出每个节点在屏幕中的位置。
5.painting: 按照算出来的规则,通过显卡,把内容画到屏幕上。
6.reflow(回流):当浏览器发现某个部分发⽣了点变化影响了布局,需要倒回去重新渲染,内⾏称这个回退的过程叫 reflow。
reflow
会从 <html> 这个 root frame 开始递归往下,依次计算所有的结点⼏何尺⼨和位置。
reflow ⼏乎是⽆法避免的。
现在界⾯上流⾏的⼀些效果,⽐如树状⽬录的折叠、展开(实质上是元素的显⽰与隐藏)等,都将引起浏览器的 reflow。
⿏标滑过、点击……只要这些⾏为引起了页⾯上某些元素的占位⾯积、定位⽅式、边距等属性的变化,都会引起它内部、周围甚⾄整个页⾯的重新渲染。
通常我们都⽆法预估浏览器到底会 reflow 哪⼀部分的代码,它们都彼此相互影响着。
7.repaint(重绘):改变某个元素的背景⾊、⽂字颜⾊、边框颜⾊等等不影响它周围或内部布局的属性时,屏幕的⼀部分要重画,但是元素的⼏何尺⼨没有变。
DOM树简单理解学习
DOM树简单理解学习为什么会提到Dom树呢,或许它对于我们很好地理解网页各个元素,标签和控件搭配,以及各种js,css等的加载会有一些帮助。
笔者在工程中遇到了一些小问题,本质就是dom树的东西掌握的不扎实。
所以借此来梳理一下。
1.HTML DOMok, 我们先来看一下W3school中怎么解释这个概念和结构的。
W3school是一个很不错的网站,很适合初学者和基础不扎实的人。
HTML DOM 定义了访问和操作HTML 文档的标准方法。
DOM 将 HTML 文档表达为树结构。
W3C 文档对象模型(DOM)是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。
W3C DOM 标准被分为 3 个不同的部分:核心 DOM - 针对任何结构化文档的标准模型XML DOM - 针对 XML 文档的标准模型HTML DOM - 针对 HTML 文档的标准模型我们主要来看HTML DOMHTML DOM 是:HTML 的标准对象模型HTML 的标准编程接口W3C 标准DOM 节点根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:整个文档是一个文档节点每个 HTML 元素是元素节点HTML 元素内的文本是文本节点每个 HTML 属性是属性节点注释是注释节点2.获取节点的原生方法innerHTML 属性获取元素内容的最简单方法是使用 innerHTML 属性。
innerHTML 属性对于获取或替换 HTML 元素的内容很有用。
document.write输出文本document.write(document.anchors.length); 锚的数量: 加入anchors[] 可以看成数值寻找索引document.write(document.forms[0].name); 表单数目document.write(document.images.length); 图像数目document.write(document.images[0].id); 图像iddocument.write(document.links.length); 链接数目document.write(document.domain); 返回区域名document.write(stModified); 文档最后一次修改时间document.write(document.title); 返回文档标题document.writeln document write 不同writeln 新增一行 write 在后面增加getElementById() 方法getElementById() 方法返回带有指定 ID 的元素引用:语法node.getElementById('id');1.<p id='intro'>Hello World!</p>2.3.<script>4.var txt=document.getElementById('intro').innerHTML;5.document.write(txt);getElementById 是一个方法,而 innerHTML 是属性。
dom结构类型 -回复
dom结构类型-回复DOM结构类型是一种描述网页文档结构的标准。
它定义了一种方式来操作HTML或XML文档,使得开发者可以通过JavaScript等编程语言来访问和操作网页中的元素。
在本文中,我们将一步一步地回答有关DOM结构类型的问题,并深入探讨其在Web开发中的重要性和用途。
DOM结构类型指的是HTML或XML文档的层次结构。
它由不同类型的节点组成,这些节点之间有层级关系,并且可以通过DOM API进行访问和操作。
DOM结构类型主要分为以下几种:1. 文档节点(document):文档节点是DOM树的根节点,在一个文档中只会有一个文档节点。
所有其他节点都是文档节点的子节点。
2. 元素节点(element):元素节点是指HTML或XML文档中的标签元素,如<div>、<p>等。
元素节点可以包含其他节点作为子节点,并且可以设置属性和样式。
3. 文本节点(text):文本节点是指元素节点中的文本内容,如<p>这是一个段落</p>中的“这是一个段落”。
文本节点没有子节点,但它可以是其他节点的子节点。
4. 属性节点(attribute):属性节点是指元素节点中的属性,如<imgsrc="image.jpg">中的“src”属性。
属性节点是元素节点的一部分,其值可以通过DOM API进行读取和更改。
5. 注释节点(comment):注释节点是指文档中的注释内容,如<! 这是一个注释>。
DOM结构类型的重要性和用途在于开发者可以使用DOM API来访问和操作网页的结构和内容。
通过使用DOM API,开发者可以执行各种操作,例如:- 动态添加、修改和删除网页的元素和属性:开发者可以使用DOM API 创建新的元素节点,设置元素属性,或通过修改DOM结构来改变网页的外观和行为。
- 获得和修改网页中的文本内容:开发者可以使用DOM API获取元素节点中的文本内容,并在需要时对其进行修改。
zTree:强大易用的jQuery树形列表插件–前端领域
zTree:强大易用的jQuery树形列表插件–前端领域
zTree是基于jQuery实现的多功能“树形列表”插件。
性能优异、配置灵活、组合多种是zTree最大优点。
如果你需要一个强大易用的树形列表,这将是你最佳的选择。
zTree采用延迟加载技术,加载效率高,支持JSON数据,可以静态和Ajax异步加载节点数据。
主要特性:
zTree v3.0 将核心代码按照功能进行
了分割,不需要的代码可以不用加载
采用了延迟加载技术,上万节点轻松
加载,即使在 IE6 下也能基本做到秒杀
兼容 IE、FireFox、Chrome、Opera、
Safari 等浏览器
支持 JSON 数据
支持静态和 Ajax 异步加载节点数据
支持任意更换皮肤 / 自定义图标(依
靠css)
支持极其灵活的 checkbox 或 radio
选择功能
提供多种事件响应回调
灵活的编辑(增/删/改/查)功能,可
随意拖拽节点,还可以多节点拖拽
在一个页面内可同时生成多个 Tree 实
例
简单的参数配置实现灵活多变的功能
由于功能太多,请各位直接查看示例,示例中有各功能使用演示。
查看示例
[ 阅读zTree v3.5.12 API 文档 ]
[ 下载zTree v3.5.12 ]
转载请注明:前端领域? zTree:强大易用的jQuery树形列表插件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
∙
∙
zTree v3.5 Css分解与dom结构说明
点评:首先要强调的就是,制作 zTree 时一定要让 ul 容器设置 className:ztree;这个主要就是为了避免与页面上自定义的css 或者其他插件的css 冲突;zTree 的 css 文件就是 zTreeStyle.css,其实这里面的 css 内容并不多,熟悉 css 的应该看起来还是挺容易的
首先要强调的就是,制作 zTree 时一定要让 ul 容器设置 className:ztree;这个主要就是为了避免与页面上自定义的css 或者其他插件的css 冲突
马上要开始研究新版本的 zTree 结构了,所以要先把现在的情况再多分析一下,做了
v3.x 版本后也一直没有制作 css 的文档,特在此进行整理一下,一边讲结构,一边说说小技巧,希望能给大家一些帮助。
zTree 的 css 文件就是 zTreeStyle.css,其实这里面的 css 内容并不多,熟悉 css 的应该看起来还是挺容易的。
首先要强调的就是,制作 zTree 时一定要让 ul 容器设置 className:ztree;这个主要就是为了避免与页面上自定义的css 或者其他插件的css 冲突;但 css 内容太多了,我不可能为了100%的避免冲突,就在 css 内把所有的 css 属性都设置一遍,如果这么做的话这个 css 就太臃肿了,基本上我我对常用的这几个属性进行了重新设定。
所以,如果当你使用 zTree 时出现了样式异常的话,就请用调试工具找到冲突的原因,然后将适用于zTree 的属性补充到 zTree 的 css 内即可。
同时,因为 zTree 的 css 都有 .ztree 做约束,所以一般情况下 zTree 的样式是不会引起页面上其他内容样式异常的。
了解 css 之前先看看 zTree 的 DOM 结构吧:
以上部分是 zTree 节点内 span 的基础样式
代码如下:
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; displa y: inline-block; vertical-align:middle;
border:0 none; cursor: pointer;outline:none;
background-color:transparent; background-repeat:no-repeat; background-attachmen t: scroll;
background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/z TreeStandard.gif")}
以上部分是 zTree 节点 +/- 号、checkbox、radio、图标的基础样式
代码如下:
.ztree li span.button.chk {width:13px; height:13px; margin:0 3px 0 0; cursor: a uto}
.ztree li span.button.chk.checkbox_false_full {background-position:0 0}
.ztree li span.button.chk.checkbox_false_full_focus {background-position:0 -14p x}
.ztree li span.button.chk.checkbox_false_part {background-position:0 -28px}
.ztree li span.button.chk.checkbox_false_part_focus {background-position:0 -42p x}
.ztree li span.button.chk.checkbox_false_disable {background-position:0 -56px} .ztree li span.button.chk.checkbox_true_full {background-position:-14px 0}
.ztree li span.button.chk.checkbox_true_full_focus {background-position:-14px -14px}
.ztree li span.button.chk.checkbox_true_part {background-position:-14px -28px} .ztree li span.button.chk.checkbox_true_part_focus {background-position:-14px -42px}
.ztree li span.button.chk.checkbox_true_disable {background-position:-14px -56p x}
.ztree li span.button.chk.radio_false_full {background-position:-28px 0}
.ztree li span.button.chk.radio_false_full_focus {background-position:-28px -14 px}
height 之间的差值,注意到这些细节,然后去调整就可以了,最后别忘了更换你的大图标的img 图标。