display:实现菜单栏目的展开合并

这里给大家分享的是用样式display实现菜单栏目的展开合并:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<style type="text/css">
/*对表格中的ul进行样式定义1,取出无序列表的样式(无序列表自带样式缩进或者文字前的圆圈)2,去掉外边距*/
  table tr td ul {
      list-style:none;
      margin:0px;
      background-color:#FF0;
      display:none;/*此元素不会显示*/
      border:#FC3 1px solid;
      padding:0px;
  }
/*对表格框线进行定义以及单元格的框线进行定义*/
  table {
      width:80px;
  }
  table td {
      border:#000 1px solid;
      background-color:#eee;
      padding:5px;
      text-align: center;
  }
  table tr td a {
      color:#600;
      text-decoration:none;/*去掉下划线*/
  }
  table tr td a:hover {
      color:#CFF;  
  }
  table tr td a:link,table tr td a:visited {
      color:#000;
      text-decoration:none;

  }
  .open
  {
      display:block;/*块对象的默认值。将对象强制作为块对象呈递,为对象之后添加新行*/
  }
  .open li {
    padding: 5px;
  }
  .close {
      display:none;/*隐藏对象。与 visibility 属性的hidden值不同,其不为被隐藏的对象保留其物理空间*/
  }
</style>
</head>

<body>
    <script type="text/javascript">
    //事件源:超链接  处理对象:ul  处理方式:open,close

        function list(aNode)
        {
            //根据事件源a获取其下一个兄弟ul
            var ulNode=aNode.nextSibling.nextSibling;
            //alert(ulNode.nodeName);

            //遍历所有的ul节点,要通过table
            var tabNode=document.getElementById("goodlist");
            //alert(tabNode.nodeName);
            var collUlNodes=tabNode.getElementsByTagName("ul")//容器型标签,都含有根据标签名获取节点的方法

            for(var x=0;x<collUlNodes.length;x++)
            {
                if(collUlNodes[x]==ulNode)
                {
                    if(ulNode.className=="open")
                    {
                        ulNode.className="close";
                    }
                    else
                    {
                        ulNode.className="open";
                    }
                }
                else
                {
                    collUlNodes[x].className="close";
                }
            }


        }

    </script>

 <table id="goodlist">
    <tr>
        <td>
            <a href="javascript:void(0)" onclick="list(this)">水果</a>
            <ul class="close">
               <li>苹果</li>
               <li>桃子</li>
               <li>香蕉</li>
               <li>草莓</li>
             </ul>
         </td>
     </tr>

     <tr>
        <td>
            <a href="javascript:void(0)"onclick="list(this)" >蔬菜</a>
            <ul class="close">
               <li>黄瓜</li>
               <li>南瓜</li>
               <li>白菜</li>
               <li>土豆</li>
             </ul>
         </td>
     </tr>

     <tr>
        <td>
            <a href="javascript:void(0)"onclick="list(this)" >肉类</a>
            <ul class="close">
               <li>鸡肉</li>
               <li>鸭肉</li>
               <li>兔肉</li>
               <li>鹅肉</li>
             </ul>
         </td>
     </tr>
</body>
</html>

效果如下:

合并的效果图

点击水果展开的效果图

PS:这里对CSS采用的是style行内式

发表评论

相关文章

没有相关文章!

猜你喜欢