• js树状菜单


    html部分

    <ul class="tree">
      <li><span><a href="#">JavaScript</a></span>
        <ul>
          <li><span><a href="#">JavaScript</a></span>
            <ul>
              <li><span><a href="#">JavaScript</a></span>
                <ul>
                  <li><a class="active" href="#">AngularJS</a></li>
                  <li><a href="#">React</a></li>
                  <li><a href="#">Backbone</a></li>
                </ul>
              </li>
              <li><a href="#">jQuery UI</a></li>
              <li><a href="#">jQuery Mobile</a></li>
            </ul>
          </li>
          <li><span><a href="#">JavaScript</a></span>
            <ul>
              <li><a class="active" href="#">AngularJS</a></li>
              <li><a href="#">React</a></li>
              <li><a href="#">Backbone</a></li>
            </ul>
          </li>
          <li><span><a href="#">JavaScript</a></span>
              <ul>
                <li><a class="active" href="#">AngularJS</a></li>
                <li><a href="#">React</a></li>
                <li><a href="#">Backbone</a></li>
              </ul>
          </li>
        </ul>
      </li>
    </ul>

    css部分

    *{list-style:none;border:none;}
    body{font-family:Arial;background-color:#2C3E50;}
    .tree {  color:#46CFB0;width:800px;margin:100px auto;}
    .tree li,
    .tree li > a,
    .tree li > span {
        padding: 4pt;
        border-radius: 4px;
    }
    
    .tree li a {
       color:#46CFB0;
        text-decoration: none;
        line-height: 20pt;
        border-radius: 4px;
    }
    
    .tree li a:hover {
        background-color: #34BC9D;
        color: #fff;
    }
    
    .active {
        background-color: #34495E;
        color: white;
    }
    
    .active a {
        color: #fff;
    }
    
    .tree li a.active:hover {
        background-color: #34BC9D;
    }
    span:before{
      content:'+';
      display: inline-block;
      margin-right: 4px;
    }
    .on:before{
      content:'-';
    }

    js部分

     var span=document.getElementsByTagName('span');
      var li=[];
      var s=[];
      for(var i=0;i<span.length;i++){
        li.push(span[i].parentNode); //获取父级元素li
      }
      for(var j=0;j<li.length;j++){
          if(li[j].childNodes[2]){
            s.push(li[j].childNodes[2]);//获取子元素第三个ul
          } 
        }
      for(var i=0;i<s.length;i++){//隐藏全部ul
        s[i].style.display='none';
      }
      for(var i=0;i<span.length;i++){
        span[i].index=i;
        span[i].onclick=function(){//点击哪个显示哪个
          if(s[this.index].style.display=='none'){
             s[this.index].style.display='block';
             this.className='on';
           }else{
            s[this.index].style.display='none';
             this.className='';
           }
         
        }
      }
  • 相关阅读:
    NET Framework Library Source Code Now Available
    [笔记] C# 3.0 新特性[2]Understanding Extension Methods
    [笔记] C# 3.0 新特性[3]Understanding Object Initializers
    Tips: Save some typing when binding values to UI in WPF/Silverlight
    Test Driven Development
    How Default Parameter Works When It Comes Overload Method
    ASP.NET MVC 3 Refresh
    Avoid to use "IN", "NOT IN" in SQL statement, try to use "LEFT JOIN" instead.
    C# Rules
    Parameter sniffing may cause negative impact on performance
  • 原文地址:https://www.cnblogs.com/aSnow/p/8759558.html
Copyright © 2020-2023  润新知