JavaScript中list的简单使用<菜单>

很简单的一个使用:点击菜单,能够显示下面的或者不显示

1,主要目的:: 展现的是的一个菜单项,然后点击一下,隐藏,点一下,弹出下面的内容

用到的是 overflow:hidden 和 overflow=”visible”这两个属性 在点击的function中,设置属性应该

node.style.overflow=”visible”;当然设置tr的高度也是很重要的,要恰好让其他的选项隐蔽

2,采用同样的技术,多加几个,但是就是传参数比较麻烦,采用this传参很常用

[html] view plaincopyprint?

<!DOCTYPE html>  
<html>  
  <head>  
    <!-- 1,主要目的:: 展现的是的一个菜单项,然后点击一下,隐藏,点一下,弹出下面的内容  
    用到的是 overflow:hidden    和  overflow="visible"这两个属性 在点击的function中,设置属性应该  
    node.style.overflow="visible";  
        2,采用同样的技术,多加几个,但是就是传参数比较麻烦  

    -->  
    <title>list.html</title>  

    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->  
    <style type="text/css">  
            dl{  
                height:18px;/*优先级问题,必须要写*/  
                overflow:hidden;  
            }  
            dd{  
                margin:0px;  
                padding:0px;  
            }  
            .close{  
                height:18px;/*优先级问题,必须要写*/  
                overflow:hidden;  
            }  
            .open{  
                height:80px;  
                overflow:visible;  
                background-color:#ff8000;  
                }  

    </style>  
        <script type="text/javascript">  

                    function click2(node1){  
//                      alert("aa"+node.nodeName);// td  
                        var nodes=node1.parentNode;  
//                      alert(nodes.nodeName);  
                    //  alert("aa"+nodes.className);  
                        //※※通过传进的对象 判断采用哪种css模式  
                        if(nodes.className=="open"){  
                            nodes.className="close";  
                        }else{  
                            nodes.className="open";  
                        }  
                    }  
        </script>  


  </head>  
  <body>  
    <!--层次列表-->  
    <!--当很多时候采用传参就很麻烦,每个都需要去传参  
    <dl>  
        <dt onclick="click1(0)">菜单条1</dt>  
        <dd>菜单1</dd>  
        <dd>菜单2</dd>  
        <dd>菜单3</dd>  
        <dd>菜单4</dd>  
    </dl>  
    <dl>  
        <dt onclick="click1(1)">菜单条2</dt>  
        <dd>菜单11</dd>  
        <dd>菜单22</dd>  
        <dd>菜单33</dd>  
        <dd>菜单44</dd>  
    </dl>  
    <dl>  
        <dt onclick="click1(2)">菜单条3</dt>  
        <dd>菜单12</dd>  
        <dd>菜单23</dd>  
        <dd>菜单34</dd>  
        <dd>菜单45</dd>  
    </dl>  
    -->  

    <br/>  
    <br/>  
    <hr/>  


    <!--<dl class="close">先手动采用css测试,可以然后采用编程使用-->  
    <dl>  
        <dt onclick="click2(this)">1菜单条1</dt>  
        <dd>菜单1</dd>  
        <dd>菜单2</dd>  
        <dd>菜单3</dd>  
        <dd>菜单4</dd>  
    </dl>  
    <dl>  
        <dt onclick="click2(this)">2菜单条2</dt>  
        <dd>菜单11</dd>  
        <dd>菜单22</dd>  
        <dd>菜单33</dd>  
        <dd>菜单44</dd>  
    </dl>  
    <dl>  
        <dt onclick="click2(this)">3菜单条3</dt>  
        <dd>菜单12</dd>  
        <dd>菜单23</dd>  
        <dd>菜单34</dd>  
        <dd>菜单45</dd>  
    </dl>  
  </body>  
</html>  

点击前:
这里写图片描述

点击后:颜色设置是css设置的
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
优化下面的代码,解决数据显示区域被侧边栏挡住部分的情况,然后解决大模块展开后与第一个子模块在一起的情况<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>后台管理界面示例</title> <style> body { margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; } header { background-color: #333; color: #fff; display: flex; justify-content: space-between; align-items: center; padding: 20px 20px 20px 20px; position: fixed; top: 0; left: 0; right: 0; z-index: 1; } header h1 { margin: 0; font-size: 24px; } header .user { display: flex; align-items: center; cursor: pointer; } header .user img { width: 30px; height: 30px; border-radius: 50%; margin-right: 10px; } .sidebar { background-color: #eee; position: fixed; top: 70px; left: 0; bottom: 0; width: 200px; padding: 10px; overflow: auto; z-index: 1; } .sidebar h2 { margin: 0; font-size: 18px; margin-bottom: 10px; } .sidebar ul { padding: 0; margin: 0; list-style: none; } .sidebar li { margin-bottom: 5px; } .sidebar a { display: block; padding: 5px 10px; color: #333; border-radius: 5px; text-decoration: none; background-color: #fff; transition: background-color 0.2s ease-in-out; } .sidebar a:hover { background-color: #ddd; } .content { margin: 60px 0 0 20px; padding: 10px; background-color: #f5f5f5; min-height: 100vh; margin-left: 200px; } </style> </head> <body> <header> <h1>央管理平台</h1> <div class="user"> <img src="user.png" alt=""> <span>未登录</span> </div> </header> <div class="sidebar"> <h2>功能模块</h2> <ul> <li> <a href="#">用户管理</a> <ul> <li><a href="#">添加用户</a></li> <li><a href="#">删除用户</a></li> <li><a href="#">修改用户</a></li> </ul> </li> <li> <a href="#">数据库管理</a> <ul> <li><a href="#">备份数据库</a></li> <li><a href="#">还原数据库</a></li> </ul> </li> <li> <a href="#">页面管理</a> <ul> <li><a href="#">添加页面</a></li> <li><a href="#">删除页面</a></li> <li><a href="#">修改页面</a></li> </ul> </li> </ul> </div> <div class="content"> <!-- 这里是内容区域 --> </div> <script> // 模拟后端数据传来时,只刷新头部和侧边栏之外的区域 setTimeout(() => { document.querySelector('.content').innerHTML = '<h2>欢迎使用央管理平台</h2><p>这里是内容区域,只有在后端有数据传来时才会刷新。</p>'; }, 3000); </script> </body> </html>
05-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值