• JavaScript 二级菜单(含过渡动画)


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>二级菜单</title>
        <style>
            *{
                list-style: none;
                text-decoration: none;
                /*text-align: center;*/
            }
            #my_menu{
                 65px;
                /*border: 1px solid black;*/
                border-radius:5px;
                background-color:lightgoldenrodyellow ;
                
            }
            span a{
                 70px;
                border: 1px solid black;
                border-radius:5px;
                color: gray;
            }
            .collapsed {
                height: 20px;
                
            }
            #my_menu div{
                overflow: hidden;
            }
            span{
                
                color: white;
                background-color: black;
            }
            span:hover{
                background-color: green;
            }
            li{
                padding: 3px 0px;
                border-bottom: 1px solid gainsboro;
            }
            a{
                font-size:14px ;
            }
            a:hover{
                color: red;
            }
        </style>
    </head>
    <body>
        <div id="my_menu" class="sdmenu">
            <div>
                <span class="menuSpan" style="border-radius:5px 5px 0px 0px;">在线工具 </span>
                <li><a href="#">图像优化</a></li>
                <li><a href="#">收藏夹 </a></li>
                <li><a href="#">邮  件</a></li>
                <li><a href="#">按  钮</a></li>
            </div>
            <div class="collapsed">
                <span class="menuSpan">支持我们</span>
                <li><a href="#">推荐我们</a></li>
                <li><a href="#">链接我们</a></li>
                <li><a href="#">资源</a></li>
            </div>
            <div class="collapsed">
                <span class="menuSpan">合作伙伴</span>
                <li><a href="#">JS工具包</a></li>
                <li><a href="#">CSS驱动</a></li>
                <li><a href="#">CForms</a></li>
            </div>
            <div class="collapsed" style="padding-bottom: 5px;">
                <span class="menuSpan">测试电流</span>
                <li><a href="#">测试1</a></li>
                <li><a href="#">测试2</a></li>
                <li><a href="#">测试3</a></li>
            </div>
        </div>
    </body>
    <script type="text/javascript" src="js/tools.js">
        //tools.js 在我的博客里
    </script>
    
    <script type="text/javascript">
        var menuSpan=document.getElementsByClassName("menuSpan");
        //定义一个变量来保存当前打开的div
        var openDiv=menuSpan[0].parentNode;
        for(i=0;i<menuSpan.length;i++){
            menuSpan[i].onclick=function(){
    //            alert("Hello");
                //获取父元素div
                var parDiv=this.parentNode;
                
                //-在切换之前,获取元素盖度
                var begin=parDiv.offsetHeight;
                
                //用tools.js通过切换高度关闭打开div
                toggleClass(parDiv,"collapsed");
                
                //-在切换之后,获取元素盖度
                var end=parDiv.offsetHeight;
    //            console.log("begin:"+begin+",end:"+end);
    
                //-动画效果,就是高度间的过度
                parDiv.style.height=begin+"px";
                //move()构造函数用.style...使用设置的,所有上面要设置一下.style...,不改变格式
                move(parDiv,"height",end,10,function(){
                    //动画执行完毕,内联样式没有存在的意义反而会影响class,删除
                    parDiv.style.height="";
                });
                
                //来完成打开一个另外打开的关闭
                //判断两个不相等,防止同一个div多加一次了class
                if(openDiv!=parDiv && !hasClass(openDiv,"collapsed")){
                    //添加class,以关闭div
    //                addClass(openDiv,"collapsed");
                    //为统一过度动画,toggleClass()
                    toggleClass(openDiv,"collapsed"); //hasClass()没有才进判断
                                                      //,达到addClass()相同效果
                }
                //修改openDiv为当前打开的菜单
                openDiv=parDiv;
            }
        }
        
        
    </script>
    </html>
  • 相关阅读:
    HTML <button> 标签
    git帮助命令
    PHP从数组中删除元素的方法
    thinkphp里面的or查询
    登录操作中的记住密码操作的算法逻辑
    重复密码需一致的表单实例
    判断 checkbox 是否选中以及 设置checkbox选中
    update和saveOrUpdate具体解释
    gopkg:一种方便的go pakcage管理方式
    一次正确选择,改变一生命运!
  • 原文地址:https://www.cnblogs.com/wangdongwei/p/11331526.html
Copyright © 2020-2023  润新知