原生js实现下拉菜单

下拉菜单在实际生活中也挺常见的,它实现的js代码与tab选卡,手风琴几乎一样,在此不过多赘述。

我仿照苏宁易购官网写了一个下拉菜单,实现代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>下拉菜单</title>
    <style>
        body,
        ul {
            padding: 0;
            margin: 0;
        }
        body{
            background-color:#ccc;
        }
        li {
            list-style: none;
        }
        a{
            text-decoration: none;
        }
        a:hover{
            color: rgb(235, 98, 35);
        }
        .nav {
            float: right;
            margin-top: 10px;
            margin-right: 80px;
            display: flex;
            width: 270px;
            height: 100px;
        }

        .nav>li {
            width: 80px;
            margin: 5px;
            text-align: center;
        }
        .selected{
            width: 80px;
            background-color:#fff;
            color: rgb(235, 98, 35);
            border:1px solid rgb(196, 194, 194);
        }
        .nav>li div:nth-child(1){
            height: 30px;
            line-height: 30px;
        }
        .nav>li div:nth-child(2){
            display: none;
            height: 160px;
            width: 80px;
            background-color: #fff;
            border:1px solid rgb(196, 194, 194);
            border-top:1px solid #fff;
            line-height: 70px;
        }
        .nav>li>div:nth-child(2) li{
            height: 40px;
            line-height: 40px;
        }
    </style>
</head>

<body>

    <ul class="nav">
        <li>
            <div><a herf="#">我的订单</a></div>
            <div>
            <ul>
                <li><a herf="#">待支付</a></li>
                <li><a herf="#">待发货</a></li>
                <li><a herf="#">待收货</a></li>
                <li><a herf="#">待评价</a></li>
            </ul>
            </div>
        </li>
        <li>
            <div><a herf="#">我的易购</a></div>
            <div>
                    <ul>
                            <li><a herf="#">我的二手</a></li>
                            <li><a herf="#">我的关注</a></li>
                            <li><a herf="#">我的金融</a></li>
                            <li><a herf="#">苏宁会员</a></li>
                        </ul>
            </div>
        </li>
        <li>
            <div><a herf="#">我的主页</a></div>
            <div>
                    <ul>
                            <li><a herf="#">头像</a></li>
                            <li><a herf="#">昵称</a></li>
                            <li><a herf="#">签名</a></li>
                            <li><a herf="#">地址</a></li>
                        </ul>
            </div>
        </li>
    </ul>
    <script>
        var s=document.querySelectorAll(".nav li div:nth-child(1)");
        var d=document.querySelectorAll(".nav li div:nth-child(2)");
        for(var i=0;i<s.length;i++){
            s[i].index=i;
            s[i].onmouseover=function(){
                for(var j=0;j<s.length;j++){
                    s[j].className="";
                    d[j].style.display="none";
                }
                this.className="selected";
                d[this.index].style.display="block";
            }
        }
    </script>

</body>

</html>

效果图如下:

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

(0)

相关推荐

  • 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

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

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

  • 一个日期下拉菜单的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; // 给年份.月份

  • 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实现全国省份城市级联下拉菜单效果代码

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

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

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

  • 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实现代码

    三级下拉菜单的实现: 复制代码 代码如下: 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&

  • 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"

随机推荐