分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

基于jquery的简洁树形折叠菜单

发布时间:2023-09-06 01:09责任编辑:郭大石关键词:暂无标签

先上效果图:

最小的ul就是一个最小的树枝,空间允许时可无限扩展。html如下:

<div class="panel panel-default"> ???????<div class="panel-body"> ???????????????????????<ul class="treeview"> ???????????????<li><a href="#">Tree</a> ???????????????????<ul> ???????????????????????<li><a href="#">Branch</a></li> ???????????????????????<li><a href="#">Branch</a> ???????????????????????????<ul> ???????????????????????????????<li><a href="#">Stick</a></li> ???????????????????????????????<li><a href="#">Stick</a></li> ???????????????????????????????<li><a href="#">Stick</a> ???????????????????????????????????<ul> ???????????????????????????????????????<li><a href="#">Twig</a></li> ???????????????????????????????????????<li><a href="#">Twig</a></li> ???????????????????????????????????????<li><a href="#">Twig</a></li> ???????????????????????????????????????<li><a href="#">Twig</a> ???????????????????????????????????????????<ul> ???????????????????????????????????????????????<li><a href="#">Leaf</a></li> ???????????????????????????????????????????????<li><a href="#">Leaf</a></li> ???????????????????????????????????????????????<li><a href="#">Leaf</a></li> ???????????????????????????????????????????????<li><a href="#">Leaf</a></li> ???????????????????????????????????????????????<li><a href="#">Leaf</a></li> ???????????????????????????????????????????????<li><a href="#">Leaf</a></li> ???????????????????????????????????????????????<li><a href="#">Leaf</a></li> ???????????????????????????????????????????????<li><a href="#">Leaf</a></li> ???????????????????????????????????????????????<li><a href="#">Leaf</a></li> ???????????????????????????????????????????</ul> ???????????????????????????????????????</li> ???????????????????????????????????????<li><a href="#">Twig</a></li> ???????????????????????????????????????<li><a href="#">Twig</a></li> ???????????????????????????????????</ul> ???????????????????????????????</li> ???????????????????????????????<li><a href="#">Stick</a></li> ???????????????????????????</ul> ???????????????????????</li> ???????????????????????<li><a href="#">Branch</a></li> ???????????????????????<li><a href="#">Branch</a></li> ???????????????????</ul> ???????????????</li> ???????????</ul> ???????????????????</div></div>

css如下:

div.panel:first-child { ???margin-top:20px;}div.treeview { ???min-width: 100px; ???min-height: 100px; ???????max-height: 256px; ???overflow:auto; ???????padding: 4px; ???????margin-bottom: 20px; ???????color: #369; ???????border: solid 1px; ???border-radius: 4px;}div.treeview ul:first-child:before { ???display: none;}.treeview, .treeview ul { ???margin:0; ???padding:0; ???list-style:none; ???????color: #369;}.treeview ul { ???margin-left:1em; ???position:relative}.treeview ul ul { ???margin-left:.5em}.treeview ul:before { ???content:""; ???display:block; ???width:0; ???position:absolute; ???top:0; ???left:0; ???border-left:1px solid; ???bottom:15px;}.treeview li { ???margin:0; ???padding:0 1em; ???line-height:2em; ???font-weight:700; ???position:relative}.treeview ul li:before { ???content:""; ???display:block; ???width:10px; ???height:0; ???border-top:1px solid; ???margin-top:1px; ???position:absolute; ???top:1em; ???left:0}.tree-indicator { ???margin-right:5px; ???????cursor:pointer;}.treeview li a { ???text-decoration: none; ???color:inherit; ???????cursor:pointer;}.treeview li button, .treeview li button:active, .treeview li button:focus { ???text-decoration: none; ???color:inherit; ???border:none; ???background:transparent; ???margin:0px 0px 0px 0px; ???padding:0px 0px 0px 0px; ???outline: 0;}

js如下:

$.fn.extend({ ???treeview: ???function() { ???????return this.each(function() { ???????????var tree = $(this); ???????????tree.addClass(‘treeview-tree‘); ???????????tree.find(‘li‘).each(function() { ???????????????var stick = $(this); ???????????}); ???????????tree.find(‘li‘).has("ul").each(function () { ???????????????var branch = $(this); //li with children ul ???????????????branch.prepend("<i class=‘tree-indicator ‘>></i>"); ???????????????branch.addClass(‘tree-branch‘); ???????????????branch.on(‘click‘, function (e) { ???????????????????if (this == e.target) { ???????????????????????var icon = $(this).children(‘i:first‘); ???????????????????????$(this).children().children().toggle(); ???????????????????} ???????????????}) ???????????????branch.children().children().toggle(); ???????????????branch.children(‘.tree-indicator, button, a‘).click(function(e) { ???????????????????branch.click(); ???????????????????e.preventDefault(); ???????????????}); ???????????}); ???????}); ???}});//调用$(window).on(‘load‘, function () { ???$(‘.treeview‘).each(function () { ???????var tree = $(this); ???????tree.treeview(); ???})})

基于jquery的简洁树形折叠菜单

原文地址:http://www.cnblogs.com/pomelott/p/7498770.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved