zoukankan      html  css  js  c++  java
  • 面向对象编写下拉菜单

    css部分

        <style type="text/css">
            * {
                padding: 0;
                margin: 0;
                list-style: none;
            }
    
            .all {
                width: 330px;
                height: 30px;
                background: url(img/bg.jpg) no-repeat;
                margin: 100px auto;
                line-height: 30px;
                text-align: center;
                padding-left: 10px;
                margin-bottom: 0;
            }
    
            .all ul li {
                width: 100px;
                height: 30px;
                background: url(img/libg.jpg);
                float: left;
                margin-right: 10px;
                position: relative;
                cursor: pointer;
            }
    
            .all ul ul {
                position: absolute;
                left: 0;
                top: 30px;
                display: none;
            }
        </style>

    HTML部分

        <div class="all">
            <ul id="list">
                <li>一级菜单
                    <ul>
                        <li>二级菜单</li>
                        <li>二级菜单</li>
                        <li>二级菜单</li>
                    </ul>
                </li>
                <li>一级菜单
                    <ul>
                        <li>二级菜单</li>
                        <li>二级菜单</li>
                        <li>二级菜单</li>
                    </ul>
                </li>
                <li>一级菜单
                    <ul>
                        <li>二级菜单</li>
                        <li>二级菜单</li>
                        <li>二级菜单</li>
                    </ul>
                </li>
            </ul>
        </div>

    JS部分

    <script>
        window.onload = function () {
            return new ListMenu().init();
        }
        //设置构造函数
        function ListMenu() {
            //获取一级菜单
            this.list = list.children;
            //添加方法
            this.init = function () {
                //通过循环遍历的方法给每一个以及菜单添加鼠标移入和移出事件
                for (let i = 0; i < this.list.length; i++) {
                    //添加鼠标移入事件,事件中的this指向的是window,因此要改变this指向
                    this.list[i].onmouseenter = function () {
                        //调用方法并传参(对象)
                        this.show(this.list[i].children[0]);
                    }.bind(this);  
                    //添加鼠标移出事件
                    this.list[i].onmouseleave = function () {
                        //调用方法并传参(对象)
                        this.hide(this.list[i].children[0]);
                    }.bind(this);
                }
            }
            //设置鼠标移入菜单显示的方法
            this.show = function (obj) {
                obj.style.display = "block";
            }
            //设置鼠标移出菜单隐藏的方法
            this.hide = function (obj) {
                obj.style.display = "none";
            }
        }
    </script>
  • 相关阅读:
    The FLARE On Challenge
    CVE-2013-2551漏洞成因与利用分析(ISCC2014 PWN6)
    CVE-2014-0322漏洞成因与利用分析
    CVE-2013-3897漏洞成因与利用分析
    译:《深入解析WINDOWS VISTA APC》——PART 1
    MemoryInjector 无痕注入
    一个APC引起的折腾 之题外记
    一个APC引起的折腾
    2020
    javascriptcore调试笔记
  • 原文地址:https://www.cnblogs.com/self-hard/p/10366995.html
Copyright © 2011-2022 走看看