HTML+CSS+JavaScript实现下拉菜单效果

本文实例为大家分享了HTML+CSS+JavaScript实现下拉菜单效果的具体代码,供大家参考,具体内容如下

实现思路:

HTML 方面,导航栏的每个 <li> 元素里面包含 <a> 和 <ul> ,将 <li> 设置为相对定位, 将 <ul> 设置为绝对定位,并将 <ul> 的 display 属性设置为 none 。通过 js 给导航栏的每个 <li> 添加事件监听器,当鼠标覆盖 <li> 时,令 <ul> 的 display 属性值为 block;当鼠标离开 <li> 时,令 <ul> 的 display 属性值为 none;

效果演示:

源代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>下拉菜单</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body {
            background-color: #ffb900;
        }
        a {
            cursor: default;
            text-decoration: none;
            font-size: 20px;
            font-weight: 700;
            color: #fff;
            letter-spacing: 3px;
        }
        li {
            list-style: none;
            cursor: default;
        }
        .container {
            position: absolute;
            top: 30%;
            left:50%;
            transform: translate(-50%, -50%);
            box-shadow: 0 10px 10px rgba(10, 20, 20, .20), 0 0 10px rgba(10, 20, 20, .20);
            font-size: 0;
        }
        .container .nav {
            display: inline-block;
            position: relative;
            width: 150px;
            height: 50px;
            background-color: #505050;
            text-align: center;
            line-height: 50px;
        }
        .container .nav:hover {
            background-color: #3e3e3e;
        }
        .container .nav ul {
            display: none;
            position: absolute;
            top: 50px;
            width: 100%;
            box-shadow: 0 10px 10px rgba(10, 20, 20, .20), 0 0 10px rgba(10, 20, 20, .20);
            background-color: #fff;
            text-align: center;
        }
        .container .nav ul li a {
            display: block;
            color: #505050;
        }
        .container .nav ul li a:hover {
            background-color: #e1e1e1;
        }
    </style>
</head>
<body>
    <ul class="container">
        <li class="nav">
            <a href="#">水果</a>
            <ul>
                <li><a href="#">西瓜</a></li>
                <li><a href="#">香蕉</a></li>
                <li><a href="#">哈密瓜</a></li>
                <li><a href="#">橙子</a></li>
            </ul>
        </li>
        <li class="nav">
            <a href="#">蔬菜</a>
            <ul>
                <li><a href="#">西红柿</a></li>
                <li><a href="#">土豆</a></li>
                <li><a href="#">小白菜</a></li>
                <li><a href="#">黄花菜</a></li>
            </ul>
        </li>
        <li class="nav">
            <a href="#">酒水</a>
            <ul>
                <li><a href="#">啤酒</a></li>
                <li><a href="#">橙汁</a></li>
                <li><a href="#">可乐</a></li>
                <li><a href="#">雪碧</a></li>
            </ul>
        </li>
        <li class="nav">
            <a href="#">零食</a>
            <ul>
                <li><a href="#">饼干</a></li>
                <li><a href="#">面包</a></li>
                <li><a href="#">辣条</a></li>
                <li><a href="#">沙琪玛</a></li>
            </ul>
        </li>
    </ul>
    <script>
        let nav = document.querySelectorAll('.nav');
        for(let i=0; i<nav.length; i++) {
            nav[i].addEventListener('mouseover', function() {
                this.children[1].style.display = "block";
            });
            nav[i].addEventListener('mouseout', function() {
                this.children[1].style.display = "none";
            });
        }
    </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • js实现全国省份城市级联下拉菜单效果代码

    本文实例讲述了js实现全国省份城市级联下拉菜单效果代码.分享给大家供大家参考.具体如下: 这是一个大家都知道的网页小功能,很常见,全国省份与城市级联菜单,采用Select下拉的方式选择数据,不过现在很多都Ajax了,貌似这种老形式已经过时了,不过在兼容性方面,仍然是不落后的. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-conv-city-xl-menu-style-codes/ 具体代码如下: <!DOCTYPE html PUBLI

  • 三级下拉菜单的js实现代码

    三级下拉菜单的实现: 复制代码 代码如下: function list(idstr){ var name1="subtree"+idstr; var name2="img"+idstr; var objectobj=document.all(name1); var imgobj=document.all(name2); //alert(imgobj); if(objectobj.style.display=="none"){ for(i=1;i&

  • css+js下拉菜单

    css菜单演示 0? " ": "") + "sfhover"; } sfEls[i].onMouseDown=function() { this.className+=(this.className.length>0? " ": "") + "sfhover"; } sfEls[i].onMouseUp=function() { this.className+=(this.cla

  • JS实多级联动下拉菜单类,简单实现省市区联动菜单!

    作者:ybcola 这段js代码是很久以前的作品了,应该在一年以前吧!当时是在做一个农村人才管理系统的时候遇到的问题,因为系统要求参选择并通过后台添加省市区县甚至到乡镇村队,而在对人才的信息进行修改时要求用下拉列表进行选择,并且每个人才来源可能是省市,或者省市区县,或者一直取队都要选择!那时第一反映就是找网上是否有现成的代码,找到一个最常用的就是省市二级联动,那时那段js代码在网上随处可见,可是拿过来对我来说没用,因为我需要的是一个多级联通并且可以自由扩展的代码!最终还是自己动手写了JS代码.

  • JS中用三种方式实现导航菜单中的二级下拉菜单

    我们在淘宝.搜狐等大型网站上都可以看到使用的一些二级下拉菜单,比如下面这张图片.那么如何实现导航菜单栏中的二级下拉菜单?下面小编给大家分享实现思路. 但是如何实现类似的图片呢?实际上,我们有至少三种方式来实现,下面,我附上代码供大家参考. 1.仅使用html和css <meta charset="UTF-8"> <title>Document</title> <style> *{margin:0;padding: 0;list-style

  • Js点击弹出下拉菜单效果实例

    复制代码 代码如下: <STYLE type=text/css> .menu { BORDER-RIGHT: #006080 2px solid; BORDER-TOP: #80e0ff 2px solid; LEFT: 0px; VISIBILITY: hidden; BORDER-LEFT: #80e0ff 2px solid; BORDER-BOTTOM: #006080 2px solid; POSITION: absolute; TOP: 0px; BACKGROUND-COLOR:

  • 一个日期下拉菜单的js实现代码

    1.先看效果图: 2.js代码 year_month_day.js 复制代码 代码如下: year_month_day.js function DateSelector(selYear, selMonth, selDay) { this.selYear = selYear; this.selMonth = selMonth; this.selDay = selDay; this.selYear.Group = this; this.selMonth.Group = this; // 给年份.月份

  • JavaScript实现下拉菜单的显示和隐藏

    我们这一篇来用JavaScript脚本实现下拉菜单的显示和隐藏.使用JavaScript方法实现我们需要用的知识有: 1)JS事件:onmouseover鼠标经过事件和onmouseout鼠标离开事件. 2)JS基础语法:使用function关键字定义函数. 3)DOM编程:getElementsByTagName()方法. 那么接下来就是我们制作的流程: 1)隐藏二级菜单:设置CSS样式,让二级菜单隐藏. 2)编写显示子菜单showsub()函数:使用getElementsByTagName获

  • js动态设置select下拉菜单的默认选中项实例

    利用javascript设置select下拉菜单的选中项. 代码实例如下: <!--js动态设置select下拉菜单的默认选中项--> <html> <head> <title>下拉菜单</title> <script type="text/javascript"> window.onload=function(){ var osel=document.getElementById("selID"

  • JavaScript 下拉菜单实现代码

    JavaScript下拉菜单 * { padding:0; margin:0; } body { font-family:verdana, sans-serif; font-size:small; } #navigation, #navigation li ul { list-style-type:none; } #navigation { margin:20px; } #navigation li { float:left; text-align:center; position:relati

随机推荐