zoukankan      html  css  js  c++  java
  • css3文件树

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
    ul, li {
    list-style: none;

    }

    ul {
    padding-left: 20px;
    }

    .close {
    transition: transform .5s;
    display: inline-block;
    15px;
    height: 15px;
    background: url("close.png") no-repeat center;
    background-size: contain;
    cursor: pointer;
    }
    .close:hover{
    transform: scale(1.5,1.5);
    }


    .open {
    transition: transform .5s;
    display: inline-block;
    15px;
    height: 15px;
    background: url("open.png") no-repeat center;
    background-size: contain;
    cursor: pointer;
    }
    .open:hover{
    transform: scale(1.5,1.5);
    }

    .leaf {
    display: inline-block;
    15px;
    height: 15px;
    background: url("leaf.png") no-repeat center;
    background-size: contain;
    transition: transform .5s;
    cursor: pointer;
    }

    .leafName {
    transition: transform .5s;
    color: green;
    padding-left: 10px;
    padding-right: 10px;
    display: inline-block;
    cursor: pointer;
    }

    .leafName:hover{
    transform: scale(1.2,1.2);
    font-weight: bolder;
    text-shadow: 1px 1px 2px red;
    }
    .leaf:hover{
    transform: scale(1.5,1.5) rotate(360deg);
    }



    .openTrue {
    cursor: pointer;
    transition: transform .5s;
    color: black;

    }
    .openTrue:hover{
    font-weight: bolder;
    transform: scale(1.5,1.5) rotate(360deg);
    }
    </style>
    </head>
    <body>
    <div id="tree"></div>
    <script type="text/javascript" src="../../../static/plugins/jquery/jquery-1.9.1.js"></script>
    <script>
    var arr = [
    {
    name: "父节点1 - 展开", open: true,
    children: [
    {
    name: "父节点11 - 折叠",
    children: [
    {name: "叶子节点111", nid: "nid"},
    {name: "叶子节点112",},
    {name: "叶子节点113"},
    {name: "叶子节点114"}
    ]
    },
    {
    name: "父节点12 - 折叠",
    children: [
    {name: "叶子节点121"},
    {name: "叶子节点122"},
    {name: "叶子节点123"},
    {name: "叶子节点124"}
    ]
    },
    {name: "父节点13 - 没有子节点", isParent: true}
    ]
    },
    {
    name: "父节点2 - 折叠",
    children: [
    {
    name: "父节点21 - 展开",
    children: [
    {name: "叶子节点211"},
    {name: "叶子节点212"},
    {name: "叶子节点213"},
    {name: "叶子节点214"}
    ]
    },
    {
    name: "父节点22 - 折叠",
    children: [
    {name: "叶子节点221"},
    {name: "叶子节点222"},
    {name: "叶子节点223"},
    {name: "叶子节点224"}
    ]
    },
    {
    name: "父节点23 - 折叠",
    children: [
    {
    name: "叶子节点231", children: [
    {
    name: "叶子节点231", children: [
    {name: "叶子节点231"},
    {name: "叶子节点232"},
    {name: "叶子节点233"},
    {
    name: "叶子节点234", children: [
    {name: "叶子节点231"},
    {name: "叶子节点232"},
    {name: "叶子节点233"},
    {
    name: "叶子节点234", children: [
    {name: "叶子节点231"},
    {name: "叶子节点232"},
    {name: "叶子节点233"},
    {
    name: "叶子节点234", children: [
    {name: "叶子节点231"},
    {name: "叶子节点232"},
    {name: "叶子节点233"},
    {name: "叶子节点234"}
    ]
    }
    ]
    }
    ]
    }
    ]
    },
    {name: "叶子节点232"},
    {name: "叶子节点233"},
    {name: "叶子节点234"}
    ]
    },
    {name: "叶子节点232"},
    {name: "叶子节点233"},
    {name: "叶子节点234"}
    ]
    }
    ]
    },
    {name: "父节点3 - 没有子节点", isParent: true}

    ];



    var arr1 = [
    {id: 1, pId: 0, name: "父节点1 - 展开", open: true},
    {id: 11, pId: 1, name: "父节点11 - 折叠"},
    {id: 111, pId: 11, name: "叶子节点111"},
    {id: 112, pId: 11, name: "叶子节点112"},
    {id: 113, pId: 11, name: "叶子节点113"},
    {id: 114, pId: 11, name: "叶子节点114"},
    {id: 12, pId: 1, name: "父节点12 - 折叠"},
    {id: 121, pId: 12, name: "叶子节点121"},
    {id: 122, pId: 12, name: "叶子节点122"},
    {id: 123, pId: 12, name: "叶子节点123"},
    {id: 124, pId: 12, name: "叶子节点124"},
    {id: 13, pId: 1, name: "父节点13 - 没有子节点", isParent: true},
    {id: 2, pId: 0, name: "父节点2 - 折叠"},
    {id: 21, pId: 2, name: "父节点21 - 展开", open: true},
    {id: 211, pId: 21, name: "叶子节点211"},
    {id: 212, pId: 21, name: "叶子节点212"},
    {id: 213, pId: 21, name: "叶子节点213"},
    {id: 214, pId: 21, name: "叶子节点214"},
    {id: 22, pId: 2, name: "父节点22 - 折叠"},
    {id: 221, pId: 22, name: "叶子节点221"},
    {id: 222, pId: 22, name: "叶子节点222"},
    {id: 223, pId: 22, name: "叶子节点223"},
    {id: 224, pId: 22, name: "叶子节点224"},
    {id: 23, pId: 2, name: "父节点23 - 折叠"},
    {id: 231, pId: 23, name: "叶子节点231"},
    {id: 232, pId: 23, name: "叶子节点232"},
    {id: 233, pId: 23, name: "叶子节点233"},
    {id: 234, pId: 23, name: "叶子节点234"},
    {id: 3, pId: 0, name: "父节点3 - 没有子节点", isParent: true}
    ];

    paintingTree(arr, "tree")








    for(var i=0;i<20;i++){
    new Image().src="https://www.cnblogs.com/liuhao-web/p/10030778.html"
    }




















    function paintingTree(arr, id) {
    if(arr[0]["pId"]!==undefined){
    arr=removeEmptyFromPaintData(arr)
    }
    var str = ""
    //渲染树
    function createTree(arr) {
    if (arr) {
    var children = arr;
    str += "<ul>";
    for (var j = 0; j < children.length; j++) {
    str += "<li>"
    if (children[j]["children"]) {
    if (children[j]["open"]) {
    str += "<div open='true'><span class='close'></span><span class='openTrue'>" + children[j]["name"] + "</span></div>";
    } else {
    str += "<div open='false'><span class='open'></span><span class='openTrue'>" + children[j]["name"] + "</span></div>";
    }

    } else {
    if(children[j]["isParent"]){
    str += "<div open='true'><span class='open'></span>" + children[j]["name"] + "</div>";
    }else{
    str += "<div class='leafCon'><span class='leaf'></span><span class='leafName'>" + children[j]["name"] + "</span></div>";
    }

    }

    createTree(children[j]["children"])
    str += "</li>"
    }
    str += "</ul>";
    }
    }

    createTree(arr)
    $("#"+id).hide()
    $("#"+id).html(str)
    $("[open=true]").each(function () {
    $(this).next().show()
    })
    $("[open=false]").each(function () {
    $(this).next().hide()
    })
    $(document).on("click", ".close", function () {
    $(this).parent().next().hide(500)
    $(this).addClass("open").removeClass("close")
    })
    $(document).on("click", ".open", function () {
    $(this).parent().next().show(500)
    $(this).addClass("close").removeClass("open")
    })
    $("#"+id).show()
    //把简单的数据转化成渲染数据
    function createPaintDataFromSimpleData(zNodes, Nodes) {
    for (var i = 0; i < zNodes.length; i++) {
    if (!!zNodes[i]) {
    zNodes[i]["children"] = [];
    for (var j = 0; j < Nodes.length; j++) {

    if (!!Nodes[j]) {
    if (Nodes[j]["pId"] == zNodes[i]["id"]) {
    if (Nodes[j]) {
    zNodes[i]["children"].push(Nodes[j])
    Nodes[j] = ""
    }
    }
    }
    }
    if (zNodes[i]["children"].length == 0) {
    zNodes[i]["children"] = false
    } else {
    createPaintDataFromSimpleData(zNodes[i]["children"], zNodes)
    }
    }
    }
    return zNodes
    }
    //对渲染数据清除空元素
    function removeEmptyFromPaintData(nodes) {
    var data = createPaintDataFromSimpleData(nodes, nodes);
    var arr = [];
    for (var i = 0; i < data.length; i++) {
    if (!!data[i]) {
    arr.push(data[i])
    }
    }
    return arr
    }
    }







    </script>
    </body>
    </html>
  • 相关阅读:
    内核驱动系列中断和定时器
    apue2 阅读笔记第四章
    apue2 阅读笔记 第五章
    apue2阅读笔记 第6.7章
    再试试windows7版得writer
    内核驱动系列内核调试方法
    apue2 阅读笔记第三章
    杂谈关于代码库
    know everything about something
    React的父子传值(父传子)
  • 原文地址:https://www.cnblogs.com/liuhao-web/p/10031925.html
Copyright © 2011-2022 走看看