树形单选框input_radio菜单

效果图
在这里插入图片描述
在这里插入图片描述

需要引用到jquery

html部分
	<body>

		<div id="menuTree" class="menuTree"></div>
	</body>
css部分
.menuTree {
    margin-left: 0px;

}

.menuTree label {
    padding-left: 1px;
    display: block;

}

.menuTree input[type="radio"]{
    width: 18px;
    height: 16px;
    appearance: none;
    position: relative;
    vertical-align: text-bottom;
}
.menuTree input[type="radio"]:before{
    content: '';
    width: 18px;
    height: 18px;
    border: 1px solid #2D92FF;
    background-color: #fff;
    display: inline-block;
    border-radius: 50%;
    vertical-align: middle;
    margin-top: -4px;
}
.menuTree input[type="radio"]:checked:before{
    content: '';
    width: 18px;
    height: 18px;
    border: 1px solid #2D92FF;
    background:#2D92FF;
    display: inline-block;
    border-radius: 50%;
    vertical-align: middle;
    margin-top: -4px;
}
.menuTree input[type="radio"]:checked:after{
    content: '';
    width: 10px;
    height: 5px;
    border: 2px solid white;
    border-top: transparent;
    border-right: transparent;
    text-align: center;
    display: block;
    position: absolute;
    top: 5px;
    left: 4px;
    vertical-align: middle;
    transform: rotate(-45deg);
}
.menuTree input[type="radio"]:checked+label{
    color: #2D92FF;
}
.menuTree label ul {
    overflow: hidden;
    display: none;
    height: auto;
    margin: 0;
    padding-left: 40px !important;
}

.menuTree span {
    display: inline-block;
    height: 30px;
    line-height: 30px;
    padding-left: 5px;
    margin: 1px 0;
    cursor: pointer;
}

.menuTree span:hover {
    background-color: #e6e6e6;
    color: #FF1A36;
}

js 部分

var json = [{
			"leval": "1",
			"name": "楼栋管理",
			"list": [{
				//显示名称
				"leval": "2",
				
				//用户等级
				"name": "科研教学楼",
				
			},{
				//显示名称
				"leval": "2",
				
				//用户等级
				"name": "科研教学楼",
				
				
			},
			{
				//显示名称
				"leval": "2",
				
				//用户等级
				"name": "科研教学楼",
				
			}
			]
		}
		
	]
	/*递归实现获取无级树数据并生成DOM结构*/
	var str = "";
	var forTree = function(o) {
		for (var i = 0; i < o.length; i++) {
			var urlstr = "";
			try {
					urlstr = "<label><input type='radio' name='radio'><span>" + o[i]["name"] + "</a></span><ul>";
				
				str += urlstr;
				if (o[i]["list"] != null) {
					forTree(o[i]["list"]);
				}
				str += "</ul></label>";
			} catch (e) {}
		}
		return str;
	}
	/*添加无级树*/
	document.getElementById("menuTree").innerHTML = forTree(json);

	/*树形菜单*/
	var menuTree = function() {
		//给有子对象的元素加
		$("#menuTree ul").each(function(index, element) {
			var ulContent = $(element).html();
			
			var spanContent = $(element).siblings("span").html();
			
			if (ulContent) {
				$(element).siblings("span").html(spanContent)
			}
		});

		$("#menuTree").find("label span").click(function() {
			var ul = $(this).siblings("ul");
			
			if (ul.find("label").html() != null) {
				if (ul.css("display") == "none") {
					ul.show(300);
				} else {
					ul.hide(300);
				}
			}
		})
	}()

	/*树形列表展开*/
	
	$("#btn_open").click(function() {
		$("#menuTree ul").show(300);
	})

	/*收缩*/
	$("#btn_close").click(function() {
		$("#menuTree ul").hide(300);
	})


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章