<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>二叉树二</title>
<style>
*{
margin:0;
padding:0;
}
span{
display: inline-block;
width:50px;
height:50px;
border:2px solid #000;
text-align: center;
line-height: 50px;
}
.box-one{
position: relative;
top:50px;
left:600px; /*问题2:怎么通过计算来讲CSS代替*/
}
.box-two,.box-three,.box-four,.box-five{ /*问题1:每一个子元素的外边距差30*/
position: absolute;
top:100px;
left:50px;
}
.line{
position: absolute;
border:1px solid #000;
width:0;
}
.middle{
height:40px;
transform:translate(20px,1px); /*平移*/
}
.left{
top: -60px;
left: -125px;
height: 250px;
transform: rotate(75deg);
}
.right{
top: -60px;
left:175px;
height: 250px;
transform: rotate(-75deg);
}
.wrap {
position: relative;
top: 500px;
left: 600px;
}
.top,.topsearch{
width:500px;
height:50px;
border:1px solid #000;
text-align: center;
line-height: 50px;
}
.topsearch input,.top input{
margin-left:5px;
}
.topsearch button,.top button{
width:50px;
cursor: pointer;
}
</style>
</head>
<body>
<div class="box-one" id="box-one">
<span>第一层</span>
<p class="line left"></p>
<p class="line middle"></p>
<p class="line right"></p>
<div class="box-two" style="margin-left:-300px;">
<span>第二层</span>
<div class="box-three" style="margin-left:-150px;">
<span>第三层</span>
<div class="box-four" style="margin-left:-125px;">
<span>第四层</span>
</div>
<div class="box-four" style="margin-left:-75px;">
<span>第四层</span>
</div>
<div class="box-four" style="margin-left:-25px;">
<span>第四层</span>
</div>
<div class="box-four" style="margin-left:25px;">
<span>第四层</span>
</div>
</div>
<div class="box-three" style="margin-left:-50px;">
<span>第三层</span>
</div>
<div class="box-three" style="margin-left:50px;">
<span>第三层</span>
<div class="box-four" style="margin-left:-50px;">
<span>第四层</span>
</div>
<div class="box-four">
<span>第四层</span>
</div>
</div>
</div>
<div class="box-two" style="margin-left:-50px;">
<span>第二层</span>
</div>
<div class="box-two" style="margin-left:200px;">
<span>第二层</span>
<div class="box-three" style="margin-left:-150px;">
<span>第三层</span>
<div class="box-four" style="margin-left:-100px;">
<span>第四层</span>
</div>
<div class="box-four" style="margin-left:-50px;">
<span>第四层</span>
</div>
<div class="box-four">
<span>第四层</span>
</div>
</div>
<div class="box-three" style="margin-left:50px;">
<span>第三层</span>
<div class="box-four" style="margin-left:-50px;">
<span>第四层</span>
<div class="box-five" style="margin-left:-50px;">
<span>第五层</span>
</div>
</div>
<div class="box-four">
<span>第四层</span>
</div>
</div>
</div>
</div>
<!--排序-->
<div class="wrap">
<div class="top">
前序<input type="radio" name="top" class="names" value="qx">
中序<input type="radio" name="top" class="names" value="zx">
后序<input type="radio" name="top" class="names" value="hx">
<button type="button" id="btn">遍历</button>
</div>
<div class="topsearch">
前序<input type="radio" name="search" class="names">
中序<input type="radio" name="search" class="names">
后序<input type="radio" name="search" class="names">
<input type="text">
<button type="button">搜索</button>
</div>
</div>
</body>
<script type="text/javascript" src="task.js"></script>
<script type="text/javascript" src="animate.js"></script>
</html>JS:window.onload=function(){
var root=document.getElementById("box-one");
var time=0;
var flag=false;
// 1.通过时间和value值来判断用哪个函数
var btn = document.getElementById("btn");
btn.addEventListener("click",function(){
time =0;
opt = getValue("top");
switch (opt){
case 'qx':
qx(root);
break;
case 'zx':
zx(root);
break;
case 'hx':
hx(root);
break;
}
})
//getValue得到value
function getValue(radioName){
var obj = document.getElementsByName(radioName);
for(var i=0;i<obj.length;i++){
if(obj[i].checked){
return obj[i].value;
}
}
return "undefined";
}
};
var timer
//每隔500MS变色
function visit(root){
timer +=400;
root.style.backgroundColor="#fff";
setTimeout(function(){
root.style.backgroundColor="#0f0";
},timer)
}
//3.前序、后序、中序
function qx(root){
if (root) { //如果根元素村子
visit(root); //执行动画
var children = root.getElementsByTagName('div'); //找到所有根元的子元素
for (var i = 0; i < children.length; i++) { //循环
//只选择子一层div
if(children[i].parentNode == root) { //将子元素等于根元素
qx(children[i]); //那么就进行添加
}
}
}
}
添加回答
举报
0/150
提交
取消