美文网首页
js实现菜单下拉框

js实现菜单下拉框

作者: RaymondSH | 来源:发表于2020-04-04 14:31 被阅读0次

1.效果:js实现菜单下拉框,当鼠标放到上面是显示菜单,当鼠标移除时隐藏菜单


新浪下拉菜单.png

2.布局分析

如下图所示,整体结构可以分为一个大盒子里面套着3个小盒子,小盒子里面装着一个<a>标签和一个隐藏的盒子 image.png
<body>
    <div class="nav">
        <div class="weibo">
            <a href=""><span>微博</span></a>
            <ul>
                <li>
                    <a href=""><span>私信</span></a>
                </li>
                <li>
                    <a href=""><span>评论</span></a>
                </li>
                <li>
                    <a href=""><span>@我</span></a>
                </li>
            </ul>
        </div>
        <div class="blog">
            <a href=""><span>博客</span></a>
            <ul>
                <li>
                    <a href=""><span>博客评论</span></a>
                </li>
                <li>
                    <a href=""><span>未读提醒</span></a>
                </li>
            </ul>
        </div>
        <div class="mail">
            <a href=""><span>邮箱</span></a>
            <ul>
                <li>
                    <a href=""><span>免费邮箱</span></a>
                </li>
                <li>
                    <a href=""><span>企业邮箱</span></a>
                </li>
                <li>
                    <a href=""><span>下载客户端</span></a>
                </li>
        </div>
    </div>
</body>

3.效果实现
CSS样式分析,首先让3个div盒子浮动起来,定位方式位相对定位,为了实现鼠标放到a标签上是整个单元格变色,所以要让a标签占满整个单元格;另外为了实现字体和左边距有小空白,所以在a标签中添加一个span标签,具体的CSS样式和效果图如下:


image.png
<style>
        * {
            margin: 0px;
            padding: 0px;
        }

        li {
            list-style: none;
        }

        /* 让a标签沾满整个单元格 */
        a {
            display: block;
            width: 100%;
            height: 100%;
            text-decoration: none;
        }

        .nav {
            width: 400px;
            margin: 50px auto;
        }

        .nav>div {
            width: 101px;
            float: left;
            position: relative;
            margin-left: 5px;
        }

        .nav>div>a:hover {
            background-color: #eeeeee;
        }

        .nav>div>a span {
            display: block;
            padding: 5px 10px;
        }

        .nav>div>ul {
            position: absolute;
            top: 30px;
            display: none;
        }

        .nav div ul li a {
            width: 100px;
            line-height: 30px;
            border-left: #fecc5b 1px solid;
            border-right: #fecc5b 1px solid;
            border-bottom: #fecc5b 1px solid;
        }

        .nav>div>ul>li a:hover {
            background-color: #fecc5b;
        }

        .nav>div>ul>li a span {
            display: block;
            padding-left: 10px;
        }
    </style>

4.js效果实现
大致思路是获取到对应的元素,当鼠标移动到其上时,显示元素,当鼠标移开时,隐藏元素,代码如下:

var nav = document.querySelector('.nav');
    var divs = nav.children;
    console.log(divs);
    for (var i = 0; i < divs.length; i++) {
        console.log(this);
        divs[i].onmouseover = function () {
            this.children[1].style.display = 'block';
        }
        divs[i].onmouseout = function () {
            this.children[1].style.display = 'none';
        }
    }

相关文章

  • js实现菜单下拉框

    1.效果:js实现菜单下拉框,当鼠标放到上面是显示菜单,当鼠标移除时隐藏菜单 2.布局分析 如下图所示,整体结构可...

  • 前端,关于下拉选择

    select标签构成的下拉框和jquery通过js构建的下拉框用法一样。例如: html下拉框: js控制的下拉框...

  • easyui常用方法

    1、下拉框“商品列表”实现 2、下拉框“客户列表”实现 3、下拉框“系统用户”实现 4、下拉框“物流公司”实现

  • 2019-05-22 自定义实现下拉框的三级联动

    一个简单的三级联动下拉框的实现: css文件: html文件: js文件: 最终效果图: 注:要实现js效果,需要...

  • 常见tab效果的实现

    原生JS实现 tab栏切换地址JQ实现左侧菜单栏地址JQ实现滑动切换地址

  • Combox

    js实现带搜索功能的下拉框实时搜索实时匹配http://m.jb51.net/article/42813.htm

  • JS实现右键菜单

    今天来讲一个关于右键菜单的小demo,抛砖引玉。 首先,我们要用css和html做一个自定义右键菜单。 现在我们已...

  • C#下拉框选择

    下拉框 选中下拉框 js获取asp标签的ID:$("#<%=ddlTypeYear.ClientID%>") .a...

  • sublime3 文件路径提示功能(安装方法)

    点开菜单“preferences”——“package control”; 在弹出的下拉框中选择“install ...

  • 实现下拉框及一些需要注意的问题

    今天我实现了网页的下拉框,有两种操作思路:即纯css路线和js路线。最终实现的效果是相同的: 纯css的实现方法:...

网友评论

      本文标题:js实现菜单下拉框

      本文链接:https://www.haomeiwen.com/subject/gjyfphtx.html