树状图
Posted ycxiaoyang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树状图相关的知识,希望对你有一定的参考价值。
效果图:
css:
body,div,span,i,p{margin: 0;padding: 0;}
.box{width: 900px;height: 600px;margin: 100px auto;border: 1px solid #333;position: relative;overflow: hidden;}
.body{position: absolute;width: max-content;height: max-content;text-align: center;min-width: 100%;}
.rows{display: inline-block;font-size: 0;margin-left: 20px;vertical-align: top;}
.rows:first-child{margin-left: 0;}
.rows.block{display: block;margin-left: 0;margin-top: 50px;}
.item{width: 20px;padding: 5px;height: 80px;border: 1px solid #333;color: #333;font-size: 12px;display: inline-block;margin-left: 20px;position: relative;cursor: pointer;}
.item:first-child{margin-left: 0;}
.line_t,.line_b{position: absolute;width: 2px;height: 24px;background-color: #333;left: 50%;margin-left: -1px;}
.line_t{top:-25px;z-index: -1;}
.line_b{bottom:-25px;z-index: -1;}
.line_x{position: absolute;height: 2px;background-color: #333;bottom: -27px;z-index: -1;}
.cuser{position:fixed;padding: 6px;border: 1px solid #83b266;background-color: #fff; border-radius: 6px;}
js:
依赖JQ
var three = [
{
name: ‘顶层顶层顶‘,
child: [
{name: ‘两个‘, child: [ {name: ‘最小‘}, {name: ‘最小‘, child: [ {name: ‘最小‘}, {name: ‘最小‘}, {name: ‘最小‘} ]} ]},
{name: ‘无子‘},
{name: ‘三个‘, child: [ {name: ‘最小‘}, {name: ‘最小‘}, {name: ‘最小‘} ]},
]
},
{
name: ‘顶层‘,
child: [
{name: ‘两个‘, child: [ {name: ‘最小‘}, {name: ‘最小‘} ]},
{name: ‘无子‘},
{name: ‘三个‘, child: [ {name: ‘最小‘}, {name: ‘最小‘}, {name: ‘最小‘} ]},
]
},
]
function addThree(ags){
var str = ‘<div class="body"><div class="rows block">‘;
call(ags,false)
function call(arr,boo){
$.each(arr, function(k,v){
str += ‘<div class="rows"><div class="item"data-name="‘+v.name+‘"><span>‘+v.name+‘</span>‘+(boo?‘<i class="line_t"></i>‘:‘‘)+(v.child?‘<i class="line_b"></i><i class="line_x"></i>‘:‘‘)+‘</div>‘;
if(v.child){
str += ‘<div class="rows block">‘;
call(v.child,true);
str += ‘</div>‘
}
str += ‘</div>‘
})
};
str += ‘</div></div>‘;
$(‘body‘).append(str);
$(‘body‘).append(‘<div class="cuser" style="display:none"></div>‘)
$(‘.item‘).each(function(k,v){
var line = $(v).children(‘.line_x‘);
var child = $(v).parent().children(‘.rows.block‘).children(‘.rows‘);
if(child[0]){
line.width(child.eq(child.length-1).children(‘.item‘).offset().left - child.eq(0).children(‘.item‘).offset().left+2)
line.css({‘left‘: -($(v).offset().left - child.children(‘.item‘).offset().left - 14) + ‘px‘})
}
})
enter(‘.item‘)
function enter(clas){
$(clas).mousemove(function(e1){
var that = $(this);
var w2 = e1.pageX+20;
var h2 = e1.pageY;
$(‘.cuser‘).css({ ‘display‘:‘block‘, ‘left‘: w2-$(window).scrollLeft(), ‘top‘: h2-$(window).scrollTop()})
$(‘.cuser‘).html(‘<p>名称:‘+that.attr(‘data-name‘)+‘</p>‘)
})
$(clas).mouseout(function(e){
$(‘.cuser‘).css({‘display‘: ‘none‘})
})
};
};
addThree(three);
以上是关于树状图的主要内容,如果未能解决你的问题,请参考以下文章