垂直导航栏

垂直导航栏这一类导航栏在很多网站上都是很常见的,比如京东

因此可以说是一个前端人员必须要会的吧

在这里目前给出了两种方式去实现:第一种就是利用html+css实现,这里模仿的是小米官网的垂直导航、第二种方式就是利用html+css+js实现

不管是第一种还是第二种主要都是利用定位来实现的

先来看第一种吧

先准备相关素材以及一些基础的css样式类,素材这里省略,基础的样式类如下:

* {
    margin: 0;
    padding: 0;
}

ul,li {
    list-style: none;
}

a {
    text-decoration: none;
    color: #000;
}

/* 容器的居中操作  原子类 */
.wrap {
    width: 1226px;
    margin: 0 auto;
}

下面就正式进入主题

通过分析不难发现整个banner区域都是相对于屏幕居中的,以及垂直导航的底部是轮播图区域(这里的重点不是轮播图,因此我就直接放了一张图片在底部)

要实现的就是将左侧的侧边栏放到图片的左上角,那么这里自然就需要通过定位来实现,我们将.banner下的.wrap容器作为父容器,侧边栏也就是.slide作为子容器,通过子绝父相调试其位置即可实现

代码如下:

.banner {
    width: 100%;
    height: 460px;
}

.banner .wrap {
    /* 相对定位,为侧边栏的父类 */
    position: relative;
}

.banner .banner-img {
    width: 100%;
}

/* 侧边栏 */
.slide {
    width: 230px;
    height: 420px;
    padding: 20px 0px;
    background: rgba(105,101,101,.6);

    /* 设置绝对定位,因为这里需要把侧边栏的
    内容定位到banner图片的左上角区域 */
    position: absolute;
    top: 0;
    left: 0;
}
    <!-- banner开始 -->
    <div class="banner">
        <div class="wrap">
            <img class="banner-img" src="./images/537e0430d5c1b77f0d5123d6bcfc25db.jpg" alt="">

            <!-- 垂直导航区域 -->
            <!-- 侧边栏 -->
            <div class="slide">
                <ul>
                    <li><a href="">手机 电话卡</a></li>
                    <li><a href="">电视 盒子</a></li>
                    <li><a href="">笔记本 显示器</a></li>
                    <li><a href="">家电 插线板</a></li>
                    <li><a href="">出行 穿戴</a></li>
                    <li><a href="">智能 路由器</a></li>
                    <li><a href="">电源 配件</a></li>
                    <li><a href="">健康 儿童</a></li>
                    <li><a href="">耳机 音响</a></li>
                    <li><a href="">生活 箱包</a></li>
                </ul>
            </div>
        </div>
    </div>

到这里也就将侧边栏定位到了相应的位置处

实际效果如下:

 接着就是设置侧边栏的基本样式,这里就不去具体阐述了,直接上代码把

.slide>ul>li {
    height: 42px;
    line-height: 42px;
    text-align: left;
    padding-left: 30px;
    font-size: 14px;
}

.slide>ul>li:hover {
    background-color: #f40;
}

.slide>ul>li:hover a {
    color: #fff;
}

不难发现侧边栏最右侧还有一个向右的箭头,可以利用雪碧图或者是字体图标实现,我这里为了省事就直接利用键盘上的大于符号了

这个箭头的实现我们可以定义一个i标签,然后将它放置在a标签里

接着就是设置箭头的基本样式,这里我们可以让它右浮动然后再给它一个padding-right值,这样就可以了

            <div class="slide">
                <ul>
                    <li><a href="">手机 电话卡<i class="iconfont">></i></a></li>
                    <li><a href="">电视 盒子<i class="iconfont">></i></a></li>
                    <li><a href="">笔记本 显示器<i class="iconfont">></i></a></li>
                    <li><a href="">家电 插线板<i class="iconfont">></i></a></li>
                    <li><a href="">出行 穿戴<i class="iconfont">></i></a></li>
                    <li><a href="">智能 路由器<i class="iconfont">></i></a></li>
                    <li><a href="">电源 配件<i class="iconfont">></i></a></li>
                    <li><a href="">健康 儿童<i class="iconfont">></i></a></li>
                    <li><a href="">耳机 音响<i class="iconfont">></i></a></li>
                    <li><a href="">生活 箱包<i class="iconfont">></i></a></li>
                </ul>
            </div>
.slide i {
    float: right;
    padding-right: 20px;
}

最后效果如下

 接下来就是重点了--实现二级菜单

这里的实现就是直接在a标签的下面给一个div用来存放二级菜单以及二级菜单里的内容

div里面很侧边栏一样,利用ul、li、a标签,在a标签里,在a标签里我们定义相关内容

然后再去调整样式,这里需要对整个二级导航设置绝对定位,定位的left距离就是侧边栏的宽度,top还是为0,这样就可以了

接着就是让二级菜单里面的li浮动

/* 二级菜单 */
/* 二级菜单容器 */
.slide-list {
    width: 992px;
    height: 460px;
    background-color: #fff;
    border: 1px solid #e0e0e0;
    border-left: none;
    /* 防止边框撑大自身 */
    box-sizing: border-box;
    box-shadow: 0 8px 16px rgba(0,0,0,.18);
    padding-top: 2px;

    /* 绝对定位 */
    position: absolute;
    top: 0;
    left: 234px;

    /* 默认隐藏 */
    display: none;
}

.slide-list>ul {
    width: 100%;
}

.slide-list>ul>li{
    width: 247.75px;
    height: 76px;
    padding: 18px 0 18px 20px;
    box-sizing: border-box;
    line-height: 40px;
    float: left;
}   

.slide-list>ul>li>a>img{
    width: 40px;
    height: 40px;
}

.slide-list span {
    color: #333;
    font-size: 14px;
    /* 设置单行文本超出后以 ... 形式显示 */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;

    /* 给自己设置相对定位,进行字体位置的微调 */
    position: relative;
    top: -14px;
}

/* 鼠标移动到li 上时二级菜单出现 */
.slide li:hover .slide-list {
    display: block;
}

.slide-list li:hover span {
    color: #ff0000;
}
                        <!-- 二级菜单 -->
                        <div class="slide-list">
                            <ul>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                            </ul>
                        </div>

 到这里也就全部完成了

源代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="css/index.css">
</head>
<body>
    <!-- banner开始 -->
    <div class="banner">
        <div class="wrap">
            <img class="banner-img" src="./images/537e0430d5c1b77f0d5123d6bcfc25db.jpg" alt="">

            <!-- 垂直导航区域 -->
            <!-- 侧边栏 -->
            <div class="slide">
                <ul>
                    <li>
                        <a href="">手机 电话卡<i class="iconfont">></i></a>
                        <!-- 二级菜单 -->
                        <div class="slide-list">
                            <ul>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                            </ul>
                        </div>
                    </li>
                    <li>
                        <a href="">电视 盒子<i class="iconfont">></i></a>
                         <!-- 二级菜单 -->
                         <div class="slide-list">
                            <ul>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                                <li><a href="">
                                    <img src="./images/5ca871528d3420622f21f25be7aba58c.png" alt="">
                                    <span>小米手机至尊版</span>
                                </a>
                                </li>
                            </ul>
                        </div>
                    </li>
                    <li>
                        <a href="">笔记本 显示器<i class="iconfont">></i></a>
                    </li>
                    <li>
                        <a href="">家电 插线板<i class="iconfont">></i></a>
                    </li>
                    <li>
                        <a href="">出行 穿戴<i class="iconfont">></i></a>
                    </li>
                    <li>
                        <a href="">智能 路由器<i class="iconfont">></i></a>
                    </li>
                    <li>
                        <a href="">电源 配件<i class="iconfont">></i></a>
                    </li>
                    <li>
                        <a href="">健康 儿童<i class="iconfont">></i></a>
                    </li>
                    <li>
                        <a href="">耳机 音响<i class="iconfont">></i></a>
                    </li>
                    <li>
                        <a href="">生活 箱包<i class="iconfont">></i></a>
                    </li>
                </ul>
            </div>
        </div>
    </div>
</body>
</html>
* {
    margin: 0;
    padding: 0;
}

ul,li {
    list-style: none;
}

a {
    text-decoration: none;
    color: #000;
}

/* 容器的居中操作  原子类 */
.wrap {
    width: 1226px;
    margin: 0 auto;
}

.banner {
    width: 100%;
    height: 460px;
}

.banner>.wrap {
    /* 相对定位,为侧边栏的父类 */
    position: relative;
}

.banner .banner-img {
    width: 100%;
}

/* 侧边栏 */
.banner .slide {
    width: 234px;
    height: 420px;
    padding: 20px 0px;
    background: rgba(105,101,101,.6);

    /* 设置绝对定位,因为这里需要把侧边栏的
    内容定位到banner图片的左上角区域 */
    position: absolute;
    top: 0;
    left: 0;
}

.slide>ul>li {
    height: 42px;
    line-height: 42px;
    text-align: left;
    padding-left: 30px;
    font-size: 14px;
}

.slide>ul>li:hover {
    background-color: #f40;
}

.slide>ul>li:hover>a {
    color: #fff;
}

.slide i {
    float: right;
    padding-right: 20px;
}

/* 二级菜单 */
/* 二级菜单容器 */
.slide-list {
    width: 992px;
    height: 460px;
    background-color: #fff;
    border: 1px solid #e0e0e0;
    border-left: none;
    /* 防止边框撑大自身 */
    box-sizing: border-box;
    box-shadow: 0 8px 16px rgba(0,0,0,.18);
    padding-top: 2px;

    /* 绝对定位 */
    position: absolute;
    top: 0;
    left: 234px;

    /* 默认隐藏 */
    display: none;
}

.slide-list>ul {
    width: 100%;
}

.slide-list>ul>li{
    width: 247.75px;
    height: 76px;
    padding: 18px 0 18px 20px;
    box-sizing: border-box;
    line-height: 40px;
    float: left;
}   

.slide-list>ul>li>a>img{
    width: 40px;
    height: 40px;
}

.slide-list span {
    color: #333;
    font-size: 14px;
    /* 设置单行文本超出后以 ... 形式显示 */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;

    /* 给自己设置相对定位,进行字体位置的微调 */
    position: relative;
    top: -14px;
}

/* 鼠标移动到li 上时二级菜单出现 */
.slide li:hover .slide-list {
    display: block;
}

.slide-list li:hover span {
    color: #ff0000;
}

第二种方式:

 首先定义一个容器,为其父类
 - 其次书写内容部分,使得内容的总高度为100%,也就是与父元素的高度相等
 - 再者利用百分比来平均分配,使每个小的子类的高度总和为100%,这样设计的目的也就是为了更好的、更灵活的平均分配父类的高度
 - 最后关于里面的小图标就利用定位来实现;样式在这里就不去叙述了
 - 接下来直接上代码,看结果

<div class="wrapper">
  <nav class="side-nav" id="side-nav">
    <!-- 左一级导航开始 -->
    <ul id="side-nav-ul">
      <!-- 第一部分 -->
      <li class="hot" data-t="hot">
        <dl>
          <dt>热门出发地</dt>
          <dd>
            <em>北京</em>
            <em>上海</em>
            <em>广深</em>
            <em>西南</em>
            <em>国内其他</em>
          </dd>
        </dl>
      </li>

      <!-- 第二部分 -->
      <li class="hk" data-t="hk">
          <dl>
              <dt>港澳台 国内</dt>
              <dd>
                  <em>香港</em>
                  <em>澳门</em>
                  <em>台湾</em>
                  <em>国内其他</em>
              </dd>
          </dl>
      </li>

      <!-- 第三部分 -->
      <li class="jp" data-t="jp">
          <dl>
              <dt>日本 韩国</dt>
              <dd>
                  <em>东京</em>
                  <em>大阪</em>
                  <em>冲绳</em>
                  <em>北海道</em>
                  <em>福冈</em>
              </dd>
          </dl>
      </li>

      <!-- 第四部分 -->
      <li class="as" data-t="as">
          <dl>
              <dt>东南亚南亚</dt>
              <dd>
                  <em>泰国</em>
                  <em>新加坡</em>
                  <em>印尼</em>
                  <em>马来西亚</em>
                  <em>越南</em>
              </dd>
          </dl>
      </li>

      <!-- 第五部分 -->
      <li class="eu" data-t="eu">
          <dl>
              <dt>欧洲 美洲</dt>
              <dd>
                  <em>英国</em>
                  <em>法国</em>
                  <em>美国</em>
                  <em>加拿大</em>
              </dd>
          </dl>
      </li>

      <!-- 第六部分 -->
      <li class="au" data-t="au">
          <dl>
              <dt>澳新 中东非</dt>
              <dd>
                  <em>澳大利亚</em>
                  <em>新西兰</em>
                  <em>迪拜</em>
              </dd>
          </dl>
      </li>
    </ul>
  </nav>
</div>
.wrapper {
  height: 467px;
  background-color: skyblue;
}

.side-nav {
  /* 这里设置高度为100%,也就是继承父元素的高度,父元素有多高它就有多高 */
  height: 100%;
  width: 652px;
  position: relative;
}

.side-nav>ul {
  /* 注意,这里的100%也非常重要,因为如果省略了,它的height就是0  */
  /* 那么它的子盒子设置16.6%就没有意义了  */
  height: 100%;
}


.side-nav>ul>li {
  height: 16.66%;
  width: 296px;
  background-color: rgba(0,0,0,.45);
  position: relative;
  border-bottom: 1px solid #9e9e9e;
  /* box-sizing:border-box 怪异盒模型
  属性的作用就是让height属性是盒子的总高度,
  这种情况:在盒子的高度是百分比写的,但是盒子有边框的时候 */
  /* 此时就要让盒子的边框涵盖在height里面,就要使用box-sizing属性 */
  box-sizing: border-box;
}

.side-nav>ul>li:last-child {
  border-bottom: none;
}


.side-nav>ul>li dl {
  position: absolute;
  height: 48px;
  top: 50%;
  margin-top: -24px;
  left: 42px;
  color: #fff;
}

.side-nav>ul>li dl dt {
  font-size: 18px;
  height: 26px;
  line-height: 26px;
}


.side-nav>ul>li dl dd {
  font-size: 16px;
  height: 22px;
  line-height: 22px;
}

/*引入精灵图开始*/
.side-nav>ul>li::before {
  content: '';
  position: absolute;
  background-image: url(images/icons.png);
  top: 50%;
  left: 10px;
  /* background-color: #f40; */
}

.side-nav>ul>li.hot::before {
  width: 22px;
  height: 18px;
  background-position: -29px -399px;
  margin-top: -9px;
}


.side-nav>ul>li.hk::before {
  width: 18px;
  height: 21px;
  background-position: -28px -217px;
  margin-top: -10.5px;
  left: 13px;
}

.side-nav>ul>li.jp::before{
  width: 24px;
  height: 19px;
  background-position: -25px -171px;
  margin-top: -9.5px;
}

.side-nav>ul>li.as::before{
  width: 18px;
  height: 19px;
  background-position: -28px -262px;
  margin-top: -9.5px;
  left: 12px;
}

.side-nav>ul>li.eu::before{
  width: 20px;
  height: 14px;
  background-position: -29px -351px;
  margin-top: -7px;
  left: 11px;
}

.side-nav>ul>li.au::before{
  width: 18px;
  height: 17px;
  background-position: -28px -305px;
  margin-top: -8.5px;
  left: 12px;
}

.side-nav>ul>li.current {
  background-color: rgba(0, 0, 0, .63);
}
/*引入精灵图结束*/

 

- 接下来这一部分的书写和第一部分几乎一致,只不过在该部分我们对其父元素利用了定位,使其能够与第一部分对齐
 - 其代码如下:

<nav>
	<div>
<!-- 左二级导航开始 -->
    <div class="menus-box">
      <!-- 第一部分 -->
      <div class="menu" data-t="hot">
          <dl>
              <dt>港澳台</dt>
              <dd>
                  <a href="">香港</a>
                  <a href="">澳门</a>
                  <a href="">台北</a>
                  <a href="">高雄</a>
                  <a href="">香港迪士尼</a>
                  <a href="">香港海洋公园</a>
                  <a href="">交通接驳</a>
                  <a href="">澳门</a>
                  <a href="">塔新濠天地水舞间</a>
                  <a href="">澳门豪华自助 台北101</a>
                  <a href="">台湾美食</a>
              </dd>
          </dl>
          <dl>
              <dt>国内热门城市</dt>
              <dd>
                  <a href="">三亚</a>
                  <a href="">东北雪乡</a>
                  <a href="">大理</a>
                  <a href="">丽江</a>
                  <a href="">昆明</a>
                  <a href="">西双版纳</a>
                  <a href="">拉萨</a>
                  <a href="">成都</a>
                  <a href="">重庆</a>
                  <a href="">长白山</a>
                  <a href="">厦门</a>
                  <a href="">长沙</a>
                  <a href="">桂林北京</a>
                  <a href="">西安</a>
                  <a href="">敦煌</a>
                  <a href="">杭州</a>
                  <a href="">上海</a>
                  <a href="">无锡</a>
                  <a href="">南京</a>
                  <a href="">广州</a>
                  <a href="">黄山</a>
                  <a href="">莫干山</a>
                  <a href="">新疆</a>
                  <a href="">北海</a>
                  <a href="">九华山</a>
                  <a href="">太原</a>
                  <a href="">张家口</a>
              </dd>
          </dl>
          <dl>
              <dt>热门景点</dt>
              <dd>
                  <a href="">北京故宫</a>
                  <a href="">东北滑雪</a>
                  <a href="">恭王府</a>
                  <a href="">长城</a>
                  <a href="">青城山大熊猫基地</a>
                  <a href="">峨眉山</a>
                  <a href="">都江堰</a>
                  <a href="">长恨歌表演</a>
                  <a href="">兵马俑</a>
                  <a href="">大唐芙蓉园</a>
                  <a href="">三亚日游</a>
                  <a href="">厦门鼓浪屿</a>
                  <a href="">千岛湖</a>
                  <a href="">呼伦贝尔草原</a>
                  <a href="">希拉穆仁草原</a>
                  <a href="">大理日游</a>
                  <a href="">杭州</a>
                  <a href="">重庆两江夜游船票</a>
              </dd>
          </dl>
      </div>

      <!-- 第二部分 -->
      <div class="menu" data-t="hk">
          <dl>
              <dt>港澳台</dt>
              <dd>
                  <a href="#">香港</a>
                  <a href="#">澳门</a>
                  <a href="#">台北</a>
                  <a href="#">高雄</a>
                  <a href="#">香港迪士尼</a>
                  <a href="#">香港海洋公园</a>
                  <a href="#">交通接驳</a>
                  <a href="#">澳门塔</a>
                  <a href="#">新濠天地水舞间</a>
                  <a href="#">澳门豪华自助</a>
                  <a href="#">台北101</a>
                  <a href="#">台湾美食</a>
              </dd>
          </dl>
      </div>

      <!-- 第三部分 -->
      <div class="menu" data-t="jp">
          <dl>
              <dt>日本</dt>
              <dd>
                  <a href="#">东京</a>
                  <a href="#">大阪</a>
                  <a href="#">冲绳</a>
                  <a href="#">北海道</a>
                  <a href="#">札幌</a>
                  <a href="#">京都</a>
                  <a href="#">名古屋</a>
                  <a href="#">福冈</a>
                  <a href="#">长崎</a>
                  <a href="#">鹿儿岛</a>
                  <a href="#">JR</a>
                  <a href="#">Pass</a>
                  <a href="#">米其林餐厅</a>
                  <a href="#">东京迪士尼</a>
                  <a href="#">大阪环球影城</a>
                  <a href="#">冲绳一日游</a>
                  <a href="#">City</a>
                  <a href="#">Walk</a>
                  <a href="#">西瓜卡</a>
                  <a href="#">京都日游</a>
                  <a href="#">和服体验</a>
                  <a href="#">包车服务</a>
                  <a href="#">富士山日游</a>
              </dd>
          </dl>
      </div>

      <!-- 第四部分 -->
      <div class="menu" data-t="as">
          <dl>
              <dt>泰新马</dt>
              <dd>
                  <a href="#">普吉岛</a>
                  <a href="#">清迈</a>
                  <a href="#">曼谷</a>
                  <a href="#">苏梅岛</a>
                  <a href="#">甲米</a>
                  <a href="#">芭堤雅</a>
                  <a href="#">拜县</a>
                  <a href="#">新加坡</a>
                  <a href="#">马来西亚</a>
                  <a href="#">沙巴</a>
                  <a href="#">吉隆坡</a>
                  <a href="#">皇帝岛</a>
                  <a href="#">泰国人妖</a>
                  <a href="#">泰国丛林飞跃</a>
                  <a href="#">泰国spa按摩</a>
                  <a href="#">清迈夜间动物园</a>
                  <a href="#">泰拳表演清莱一日游</a>
                  <a href="#">新加坡环球影城</a>
                  <a href="#">新加坡日游</a>
                  <a href="#">新加坡滨海湾花园</a>
                  <a href="#">沙巴美人鱼岛</a>
                  <a href="#">沙巴红树林萤火虫</a>
              </dd>
          </dl>
          <dl>
              <dt>东南亚</dt>
              <dd>
                  <a href="#">巴厘岛</a>
                  <a href="#">长滩岛</a>
                  <a href="#">马尼拉</a>
                  <a href="#">薄荷岛</a>
                  <a href="#">美娜多芽庄</a>
                  <a href="#">岘港</a>
                  <a href="#">富国岛</a>
                  <a href="#">柬埔寨</a>
                  <a href="#">缅甸</a>
                  <a href="#">老挝</a>
                  <a href="#">文莱</a>
                  <a href="#">蓝梦岛</a>
                  <a href="#">巴厘岛SPA</a>
                  <a href="#">网红漂浮下午茶</a>
                  <a href="#">珍珠岛游乐园</a>
                  <a href="#">富国岛浮潜海钓</a>
                  <a href="#">吴哥窟</a>
                  <a href="#">西哈努克</a>
              </dd>
          </dl>
          <dl>
              <dt>西亚</dt>
              <dd>
                  <a href="#">马尔代夫</a>
                  <a href="#">斯里兰卡</a>
                  <a href="#">印度</a>
                  <a href="#">尼泊尔</a>
                  <a href="#">格鲁吉亚阿塞拜疆</a>
                  <a href="#">亚美尼亚</a>
              </dd>
          </dl>
      </div>

      <!-- 第五部分 -->
      <div class="menu" data-t="eu">
          <dl>
              <dt>欧洲</dt>
              <dd>
                  <a href="#">法国</a>
                  <a href="#">意大利</a>
                  <a href="#">土耳其</a>
                  <a href="#">俄罗斯</a>
                  <a href="#">西班牙</a>
                  <a href="#">瑞士</a>
                  <a href="#">英国</a>
                  <a href="#">希腊</a>
                  <a href="#">荷兰</a>
                  <a href="#">德国</a>
                  <a href="#">捷克</a>
                  <a href="#">葡萄牙</a>
                  <a href="#">奥地利</a>
                  <a href="#">瑞典</a>
                  <a href="#">丹麦</a>
                  <a href="#">挪威</a>
                  <a href="#">冰岛</a>
                  <a href="#">芬兰</a>
                  <a href="#">罗瓦涅米</a>
                  <a href="#">奥斯陆</a>
                  <a href="#">雷克雅未克</a>
                  <a href="#">因特拉肯</a>
                  <a href="#">巴塞罗那</a>
                  <a href="#">伦敦</a>
                  <a href="#">巴黎</a>
                  <a href="#">塞纳河</a>
                  <a href="#">慕尼黑</a>
                  <a href="#">普罗旺斯</a>
                  <a href="#">温莎日游</a>
                  <a href="#">巴黎迪斯尼</a>
                  <a href="#">伊斯坦布</a>
                  <a href="#">尔阿尔罕布拉宫</a>
                  <a href="#">唐顿庄园</a>
                  <a href="#">埃菲尔铁塔</a>
                  <a href="#">凡尔赛宫</a>
                  <a href="#">北欧破冰船</a>
                  <a href="#">极光之旅</a>
                  <a href="#">英国天空岛</a>
              </dd>
          </dl>
          <dl>
              <dt>美洲</dt>
              <dd>
                  <a href="#">美国</a>
                  <a href="#">加拿大</a>
                  <a href="#">墨西哥</a>
                  <a href="#">巴西</a>
                  <a href="#">阿根廷</a>
                  <a href="#">智利</a>
                  <a href="#">秘鲁</a>
                  <a href="#">玻利维亚</a>
                  <a href="#">洛杉矶</a>
                  <a href="#">纽约</a>
                  <a href="#">拉斯维加斯</a>
                  <a href="#">旧金山</a>
                  <a href="#">圣地亚哥芝加哥</a>
                  <a href="#">西雅图</a>
                  <a href="#">华盛顿</a>
                  <a href="#">奥兰多</a>
                  <a href="#">夏威夷</a>
                  <a href="#">塞班岛</a>
                  <a href="#">关岛</a>
                  <a href="#">环球影城</a>
                  <a href="#">迪士尼</a>
                  <a href="#">演出票</a>
                  <a href="#">尼亚加拉大瀑布</a>
                  <a href="#">帝国大厦</a>
                  <a href="#">奥特莱斯</a>
                  <a href="#">黄石国家公园</a>
                  <a href="#">纽约大都会博物馆</a>
                  <a href="#">美国大峡谷西峡</a>
                  <a href="#">拉斯维加斯摩天轮</a>
                  <a href="#">羚羊峡谷</a>
                  <a href="#">马蹄湾</a>
              </dd>
          </dl>
      </div>

      <!-- 第六部分 -->
      <div class="menu" data-t="au">
          <dl>
              <dt>澳新 南太平洋</dt>
              <dd>
                  <a href="#">墨尔本</a>
                  <a href="#">悉尼</a>
                  <a href="#">黄金海岸</a>
                  <a href="#">凯恩斯</a>
                  <a href="#">布里斯班奥克兰</a>
                  <a href="#">斐济</a>
                  <a href="#">珀斯</a>
                  <a href="#">圣灵群岛</a>
                  <a href="#">大堡礁</a>
                  <a href="#">墨尔本之星</a>
                  <a href="#">悉尼热气球</a>
                  <a href="#">水上飞机</a>
                  <a href="#">海港大桥</a>
                  <a href="#">皇后镇霍比特人村</a>
                  <a href="#">怀托莫萤火虫洞</a>
                  <a href="#">米尔福德峡湾</a>
                  <a href="#">新西兰滑雪</a>
                  <a href="#">瓦纳卡</a>
                  <a href="#"></a>
              </dd>
          </dl>
          <dl>
              <dt>中东非</dt>
              <dd>
                  <a href="#">迪拜</a>
                  <a href="#">摩洛哥</a>
                  <a href="#">毛里求斯</a>
                  <a href="#">埃及</a>
                  <a href="#">塞舌尔</a>
                  <a href="#">马达加斯加</a>
                  <a href="#">以色列</a>
                  <a href="#">肯尼亚</a>
                  <a href="#">南非</a>
                  <a href="#">伊朗</a>
                  <a href="#">约旦</a>
                  <a href="#">突尼斯</a>
                  <a href="#">迪拜</a>
                  <a href="#">塔法拉利主题公园</a>
                  <a href="#">迪拜七星帆船酒店用餐</a>
                  <a href="#">夜游迪拜河</a>
                  <a href="#">亚特兰蒂斯水上乐园</a>
                  <a href="#">动物大迁徙</a>
                  <a href="#">撒哈拉沙漠</a>
                  <a href="#">金字塔</a>
                  <a href="#">纳米比亚</a>
                  <a href="#"></a>
              </dd>
          </dl>
      </div>
      <!-- 左二级导航结束 -->
    </div>
  </nav>
</div>
	.side-nav .menus-box .menu {
  display: none;
  position: absolute;
  left: 296px;
  top: 0;
  height: 100%;
  background-color: rgba(0, 0, 0, .63);
  color: #fff;
  padding: 16px;
  box-sizing: border-box;
  z-index: 999;
}

.side-nav .menus-box .menu a {
  color: #fff;
}

.side-nav .menus-box .menu a:hover {
  color: #20BD9A;
}

.side-nav .menus-box .menu a:active {
  color: #f40;
}

.side-nav .menus-box .menu dl {
  margin-bottom: 16px;
}

.side-nav .menus-box .menu dl dt {
  line-height: 30px;
  font-size: 18px;
}

.side-nav .menus-box .menu dl dd {
  line-height: 22px;
  font-size: 15px;
}

.side-nav .menus-box .menu.current {
  display: block;
}

这一部分主要实现当鼠标移动到 “热门出发地”或者“东南亚南亚”等区域时,其对应的子菜单自动展开
 - 当鼠标移出整个菜单区域时,则恢复到默认状态,也就是只显示第一部分的内容,第二部分区域的子菜单默认处于隐藏状态 

//利用IIFE(也就是立即执行函数来做)
(function(){

  //获得元素
  var sideNavUl = document.getElementById('side-nav-ul');
  var sideNav = document.getElementById('side-nav');
  var sideNavLis = document.querySelectorAll('#side-nav-ul li');

  // 寻找所有menu
  var menus = document.querySelectorAll('.menus-box .menu');

  //事件委托
  //onmouseover与onmouseenter的区别就是,前者会冒泡,后者不会冒泡
  //因此在这里需要使用onmouseover
  sideNavUl.onmouseover = function (e) {

    //判断触发事件的这个元素的标签名小写过后是不是li标签
    //因为有的浏览器的标签名是小写有的是大写,因此在这里进行统一
    if(e.target.tagName.toLowerCase() == 'li'){

      // getAttribute--得到鼠标所触碰到的当前元素的属性值
      // 在这里也就是得到触碰到的li元素身上的data-t属性
        var t = e.target.getAttribute('data-t');

        // 排他操作--让所有的li都去掉current类名
        for(var j = 0; j < sideNavLis.length; j++){
          sideNavLis[j].className = sideNavLis[j].getAttribute('data-t');
        }

        //当前碰到的这个li,要加current类
        e.target.className += ' current';

        //寻找匹配的menu
        var themenu = document.querySelector('.menus-box .menu[data-t = ' + t + ']');

        //进行排他操作--让所有的menu都去掉 .current 类名
        for(var i = 0; i < menus.length; i++){
          menus[i].className = 'menu';
        }

        //而让鼠标移上去的对应的menu加上 .current 类名
        //当鼠标移到到相应的li标签上时,其对应的menu便会自动加上 .current 最后对应的display的属性值便为block
        themenu.className = 'menu current';
    }
  };

  // 当鼠标离开大盒子时,菜单要关闭
  sideNav.onmouseleave = function () {
    for(var i = 0; i < sideNavLis.length; i++){
      sideNavLis[i].className = sideNavLis[i].getAttribute('data-t');
      menus[i].className = 'menu';
    }
  };


})();

源码:

<!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>
  <link rel="stylesheet" href="reset.css">
  <link rel="stylesheet" href="index.css">
</head>
<body>
<div class="wrapper">
  <nav class="side-nav" id="side-nav">
    <!-- 左一级导航开始 -->
    <ul id="side-nav-ul">
      <!-- 第一部分 -->
      <li class="hot" data-t="hot">
        <dl>
          <dt>热门出发地</dt>
          <dd>
            <em>北京</em>
            <em>上海</em>
            <em>广深</em>
            <em>西南</em>
            <em>国内其他</em>
          </dd>
        </dl>
      </li>

      <!-- 第二部分 -->
      <li class="hk" data-t="hk">
          <dl>
              <dt>港澳台 国内</dt>
              <dd>
                  <em>香港</em>
                  <em>澳门</em>
                  <em>台湾</em>
                  <em>国内其他</em>
              </dd>
          </dl>
      </li>

      <!-- 第三部分 -->
      <li class="jp" data-t="jp">
          <dl>
              <dt>日本 韩国</dt>
              <dd>
                  <em>东京</em>
                  <em>大阪</em>
                  <em>冲绳</em>
                  <em>北海道</em>
                  <em>福冈</em>
              </dd>
          </dl>
      </li>

      <!-- 第四部分 -->
      <li class="as" data-t="as">
          <dl>
              <dt>东南亚南亚</dt>
              <dd>
                  <em>泰国</em>
                  <em>新加坡</em>
                  <em>印尼</em>
                  <em>马来西亚</em>
                  <em>越南</em>
              </dd>
          </dl>
      </li>

      <!-- 第五部分 -->
      <li class="eu" data-t="eu">
          <dl>
              <dt>欧洲 美洲</dt>
              <dd>
                  <em>英国</em>
                  <em>法国</em>
                  <em>美国</em>
                  <em>加拿大</em>
              </dd>
          </dl>
      </li>

      <!-- 第六部分 -->
      <li class="au" data-t="au">
          <dl>
              <dt>澳新 中东非</dt>
              <dd>
                  <em>澳大利亚</em>
                  <em>新西兰</em>
                  <em>迪拜</em>
              </dd>
          </dl>
      </li>
    </ul>
    <!-- 左一级导航结束 -->

    <!-- 左二级导航开始 -->
    <div class="menus-box">
      <!-- 第一部分 -->
      <div class="menu" data-t="hot">
          <dl>
              <dt>港澳台</dt>
              <dd>
                  <a href="">香港</a>
                  <a href="">澳门</a>
                  <a href="">台北</a>
                  <a href="">高雄</a>
                  <a href="">香港迪士尼</a>
                  <a href="">香港海洋公园</a>
                  <a href="">交通接驳</a>
                  <a href="">澳门</a>
                  <a href="">塔新濠天地水舞间</a>
                  <a href="">澳门豪华自助 台北101</a>
                  <a href="">台湾美食</a>
              </dd>
          </dl>
          <dl>
              <dt>国内热门城市</dt>
              <dd>
                  <a href="">三亚</a>
                  <a href="">东北雪乡</a>
                  <a href="">大理</a>
                  <a href="">丽江</a>
                  <a href="">昆明</a>
                  <a href="">西双版纳</a>
                  <a href="">拉萨</a>
                  <a href="">成都</a>
                  <a href="">重庆</a>
                  <a href="">长白山</a>
                  <a href="">厦门</a>
                  <a href="">长沙</a>
                  <a href="">桂林北京</a>
                  <a href="">西安</a>
                  <a href="">敦煌</a>
                  <a href="">杭州</a>
                  <a href="">上海</a>
                  <a href="">无锡</a>
                  <a href="">南京</a>
                  <a href="">广州</a>
                  <a href="">黄山</a>
                  <a href="">莫干山</a>
                  <a href="">新疆</a>
                  <a href="">北海</a>
                  <a href="">九华山</a>
                  <a href="">太原</a>
                  <a href="">张家口</a>
              </dd>
          </dl>
          <dl>
              <dt>热门景点</dt>
              <dd>
                  <a href="">北京故宫</a>
                  <a href="">东北滑雪</a>
                  <a href="">恭王府</a>
                  <a href="">长城</a>
                  <a href="">青城山大熊猫基地</a>
                  <a href="">峨眉山</a>
                  <a href="">都江堰</a>
                  <a href="">长恨歌表演</a>
                  <a href="">兵马俑</a>
                  <a href="">大唐芙蓉园</a>
                  <a href="">三亚日游</a>
                  <a href="">厦门鼓浪屿</a>
                  <a href="">千岛湖</a>
                  <a href="">呼伦贝尔草原</a>
                  <a href="">希拉穆仁草原</a>
                  <a href="">大理日游</a>
                  <a href="">杭州</a>
                  <a href="">重庆两江夜游船票</a>
              </dd>
          </dl>
      </div>

      <!-- 第二部分 -->
      <div class="menu" data-t="hk">
          <dl>
              <dt>港澳台</dt>
              <dd>
                  <a href="#">香港</a>
                  <a href="#">澳门</a>
                  <a href="#">台北</a>
                  <a href="#">高雄</a>
                  <a href="#">香港迪士尼</a>
                  <a href="#">香港海洋公园</a>
                  <a href="#">交通接驳</a>
                  <a href="#">澳门塔</a>
                  <a href="#">新濠天地水舞间</a>
                  <a href="#">澳门豪华自助</a>
                  <a href="#">台北101</a>
                  <a href="#">台湾美食</a>
              </dd>
          </dl>
      </div>

      <!-- 第三部分 -->
      <div class="menu" data-t="jp">
          <dl>
              <dt>日本</dt>
              <dd>
                  <a href="#">东京</a>
                  <a href="#">大阪</a>
                  <a href="#">冲绳</a>
                  <a href="#">北海道</a>
                  <a href="#">札幌</a>
                  <a href="#">京都</a>
                  <a href="#">名古屋</a>
                  <a href="#">福冈</a>
                  <a href="#">长崎</a>
                  <a href="#">鹿儿岛</a>
                  <a href="#">JR</a>
                  <a href="#">Pass</a>
                  <a href="#">米其林餐厅</a>
                  <a href="#">东京迪士尼</a>
                  <a href="#">大阪环球影城</a>
                  <a href="#">冲绳一日游</a>
                  <a href="#">City</a>
                  <a href="#">Walk</a>
                  <a href="#">西瓜卡</a>
                  <a href="#">京都日游</a>
                  <a href="#">和服体验</a>
                  <a href="#">包车服务</a>
                  <a href="#">富士山日游</a>
              </dd>
          </dl>
      </div>

      <!-- 第四部分 -->
      <div class="menu" data-t="as">
          <dl>
              <dt>泰新马</dt>
              <dd>
                  <a href="#">普吉岛</a>
                  <a href="#">清迈</a>
                  <a href="#">曼谷</a>
                  <a href="#">苏梅岛</a>
                  <a href="#">甲米</a>
                  <a href="#">芭堤雅</a>
                  <a href="#">拜县</a>
                  <a href="#">新加坡</a>
                  <a href="#">马来西亚</a>
                  <a href="#">沙巴</a>
                  <a href="#">吉隆坡</a>
                  <a href="#">皇帝岛</a>
                  <a href="#">泰国人妖</a>
                  <a href="#">泰国丛林飞跃</a>
                  <a href="#">泰国spa按摩</a>
                  <a href="#">清迈夜间动物园</a>
                  <a href="#">泰拳表演清莱一日游</a>
                  <a href="#">新加坡环球影城</a>
                  <a href="#">新加坡日游</a>
                  <a href="#">新加坡滨海湾花园</a>
                  <a href="#">沙巴美人鱼岛</a>
                  <a href="#">沙巴红树林萤火虫</a>
              </dd>
          </dl>
          <dl>
              <dt>东南亚</dt>
              <dd>
                  <a href="#">巴厘岛</a>
                  <a href="#">长滩岛</a>
                  <a href="#">马尼拉</a>
                  <a href="#">薄荷岛</a>
                  <a href="#">美娜多芽庄</a>
                  <a href="#">岘港</a>
                  <a href="#">富国岛</a>
                  <a href="#">柬埔寨</a>
                  <a href="#">缅甸</a>
                  <a href="#">老挝</a>
                  <a href="#">文莱</a>
                  <a href="#">蓝梦岛</a>
                  <a href="#">巴厘岛SPA</a>
                  <a href="#">网红漂浮下午茶</a>
                  <a href="#">珍珠岛游乐园</a>
                  <a href="#">富国岛浮潜海钓</a>
                  <a href="#">吴哥窟</a>
                  <a href="#">西哈努克</a>
              </dd>
          </dl>
          <dl>
              <dt>西亚</dt>
              <dd>
                  <a href="#">马尔代夫</a>
                  <a href="#">斯里兰卡</a>
                  <a href="#">印度</a>
                  <a href="#">尼泊尔</a>
                  <a href="#">格鲁吉亚阿塞拜疆</a>
                  <a href="#">亚美尼亚</a>
              </dd>
          </dl>
      </div>

      <!-- 第五部分 -->
      <div class="menu" data-t="eu">
          <dl>
              <dt>欧洲</dt>
              <dd>
                  <a href="#">法国</a>
                  <a href="#">意大利</a>
                  <a href="#">土耳其</a>
                  <a href="#">俄罗斯</a>
                  <a href="#">西班牙</a>
                  <a href="#">瑞士</a>
                  <a href="#">英国</a>
                  <a href="#">希腊</a>
                  <a href="#">荷兰</a>
                  <a href="#">德国</a>
                  <a href="#">捷克</a>
                  <a href="#">葡萄牙</a>
                  <a href="#">奥地利</a>
                  <a href="#">瑞典</a>
                  <a href="#">丹麦</a>
                  <a href="#">挪威</a>
                  <a href="#">冰岛</a>
                  <a href="#">芬兰</a>
                  <a href="#">罗瓦涅米</a>
                  <a href="#">奥斯陆</a>
                  <a href="#">雷克雅未克</a>
                  <a href="#">因特拉肯</a>
                  <a href="#">巴塞罗那</a>
                  <a href="#">伦敦</a>
                  <a href="#">巴黎</a>
                  <a href="#">塞纳河</a>
                  <a href="#">慕尼黑</a>
                  <a href="#">普罗旺斯</a>
                  <a href="#">温莎日游</a>
                  <a href="#">巴黎迪斯尼</a>
                  <a href="#">伊斯坦布</a>
                  <a href="#">尔阿尔罕布拉宫</a>
                  <a href="#">唐顿庄园</a>
                  <a href="#">埃菲尔铁塔</a>
                  <a href="#">凡尔赛宫</a>
                  <a href="#">北欧破冰船</a>
                  <a href="#">极光之旅</a>
                  <a href="#">英国天空岛</a>
              </dd>
          </dl>
          <dl>
              <dt>美洲</dt>
              <dd>
                  <a href="#">美国</a>
                  <a href="#">加拿大</a>
                  <a href="#">墨西哥</a>
                  <a href="#">巴西</a>
                  <a href="#">阿根廷</a>
                  <a href="#">智利</a>
                  <a href="#">秘鲁</a>
                  <a href="#">玻利维亚</a>
                  <a href="#">洛杉矶</a>
                  <a href="#">纽约</a>
                  <a href="#">拉斯维加斯</a>
                  <a href="#">旧金山</a>
                  <a href="#">圣地亚哥芝加哥</a>
                  <a href="#">西雅图</a>
                  <a href="#">华盛顿</a>
                  <a href="#">奥兰多</a>
                  <a href="#">夏威夷</a>
                  <a href="#">塞班岛</a>
                  <a href="#">关岛</a>
                  <a href="#">环球影城</a>
                  <a href="#">迪士尼</a>
                  <a href="#">演出票</a>
                  <a href="#">尼亚加拉大瀑布</a>
                  <a href="#">帝国大厦</a>
                  <a href="#">奥特莱斯</a>
                  <a href="#">黄石国家公园</a>
                  <a href="#">纽约大都会博物馆</a>
                  <a href="#">美国大峡谷西峡</a>
                  <a href="#">拉斯维加斯摩天轮</a>
                  <a href="#">羚羊峡谷</a>
                  <a href="#">马蹄湾</a>
              </dd>
          </dl>
      </div>

      <!-- 第六部分 -->
      <div class="menu" data-t="au">
          <dl>
              <dt>澳新 南太平洋</dt>
              <dd>
                  <a href="#">墨尔本</a>
                  <a href="#">悉尼</a>
                  <a href="#">黄金海岸</a>
                  <a href="#">凯恩斯</a>
                  <a href="#">布里斯班奥克兰</a>
                  <a href="#">斐济</a>
                  <a href="#">珀斯</a>
                  <a href="#">圣灵群岛</a>
                  <a href="#">大堡礁</a>
                  <a href="#">墨尔本之星</a>
                  <a href="#">悉尼热气球</a>
                  <a href="#">水上飞机</a>
                  <a href="#">海港大桥</a>
                  <a href="#">皇后镇霍比特人村</a>
                  <a href="#">怀托莫萤火虫洞</a>
                  <a href="#">米尔福德峡湾</a>
                  <a href="#">新西兰滑雪</a>
                  <a href="#">瓦纳卡</a>
                  <a href="#"></a>
              </dd>
          </dl>
          <dl>
              <dt>中东非</dt>
              <dd>
                  <a href="#">迪拜</a>
                  <a href="#">摩洛哥</a>
                  <a href="#">毛里求斯</a>
                  <a href="#">埃及</a>
                  <a href="#">塞舌尔</a>
                  <a href="#">马达加斯加</a>
                  <a href="#">以色列</a>
                  <a href="#">肯尼亚</a>
                  <a href="#">南非</a>
                  <a href="#">伊朗</a>
                  <a href="#">约旦</a>
                  <a href="#">突尼斯</a>
                  <a href="#">迪拜</a>
                  <a href="#">塔法拉利主题公园</a>
                  <a href="#">迪拜七星帆船酒店用餐</a>
                  <a href="#">夜游迪拜河</a>
                  <a href="#">亚特兰蒂斯水上乐园</a>
                  <a href="#">动物大迁徙</a>
                  <a href="#">撒哈拉沙漠</a>
                  <a href="#">金字塔</a>
                  <a href="#">纳米比亚</a>
                  <a href="#"></a>
              </dd>
          </dl>
      </div>
      <!-- 左二级导航结束 -->
    </div>
  </nav>
</div>
<script src=menu.js></script>
</body>
</html>

 

.wrapper {
  height: 467px;
  background-color: skyblue;
}

.side-nav {
  /* 这里设置高度为100%,也就是继承父元素的高度,父元素有多高它就有多高 */
  height: 100%;
  width: 652px;
  position: relative;
}

.side-nav>ul {
  /* 注意,这里的100%也非常重要,因为如果省略了,它的height就是0  */
  /* 那么它的子盒子设置16.6%就没有意义了  */
  height: 100%;
}


.side-nav>ul>li {
  height: 16.66%;
  width: 296px;
  background-color: rgba(0,0,0,.45);
  position: relative;
  border-bottom: 1px solid #9e9e9e;
  /* box-sizing:border-box 怪异盒模型
  属性的作用就是让height属性是盒子的总高度,
  这种情况:在盒子的高度是百分比写的,但是盒子有边框的时候 */
  /* 此时就要让盒子的边框涵盖在height里面,就要使用box-sizing属性 */
  box-sizing: border-box;
}

.side-nav>ul>li:last-child {
  border-bottom: none;
}


.side-nav>ul>li dl {
  position: absolute;
  height: 48px;
  top: 50%;
  margin-top: -24px;
  left: 42px;
  color: #fff;
}

.side-nav>ul>li dl dt {
  font-size: 18px;
  height: 26px;
  line-height: 26px;
}


.side-nav>ul>li dl dd {
  font-size: 16px;
  height: 22px;
  line-height: 22px;
}

/*引入精灵图开始*/
.side-nav>ul>li::before {
  content: '';
  position: absolute;
  background-image: url(images/icons.png);
  top: 50%;
  left: 10px;
  /* background-color: #f40; */
}

.side-nav>ul>li.hot::before {
  width: 22px;
  height: 18px;
  background-position: -29px -399px;
  margin-top: -9px;
}


.side-nav>ul>li.hk::before {
  width: 18px;
  height: 21px;
  background-position: -28px -217px;
  margin-top: -10.5px;
  left: 13px;
}

.side-nav>ul>li.jp::before{
  width: 24px;
  height: 19px;
  background-position: -25px -171px;
  margin-top: -9.5px;
}

.side-nav>ul>li.as::before{
  width: 18px;
  height: 19px;
  background-position: -28px -262px;
  margin-top: -9.5px;
  left: 12px;
}

.side-nav>ul>li.eu::before{
  width: 20px;
  height: 14px;
  background-position: -29px -351px;
  margin-top: -7px;
  left: 11px;
}

.side-nav>ul>li.au::before{
  width: 18px;
  height: 17px;
  background-position: -28px -305px;
  margin-top: -8.5px;
  left: 12px;
}

.side-nav>ul>li.current {
  background-color: rgba(0, 0, 0, .63);
}
/*引入精灵图结束*/

/* 二级侧边栏开始 */
.side-nav .menus-box .menu {
  display: none;
  position: absolute;
  left: 296px;
  top: 0;
  height: 100%;
  background-color: rgba(0, 0, 0, .63);
  color: #fff;
  padding: 16px;
  box-sizing: border-box;
  z-index: 999;
}

.side-nav .menus-box .menu a {
  color: #fff;
}

.side-nav .menus-box .menu a:hover {
  color: #20BD9A;
}

.side-nav .menus-box .menu a:active {
  color: #f40;
}

.side-nav .menus-box .menu dl {
  margin-bottom: 16px;
}

.side-nav .menus-box .menu dl dt {
  line-height: 30px;
  font-size: 18px;
}

.side-nav .menus-box .menu dl dd {
  line-height: 22px;
  font-size: 15px;
}

.side-nav .menus-box .menu.current {
  display: block;
}

reset.css略(这个其实就一个清除默认效果的css文件,网上一大堆)

//利用IIFE(也就是立即执行函数来做)
(function(){

  //获得元素
  var sideNavUl = document.getElementById('side-nav-ul');
  var sideNav = document.getElementById('side-nav');
  var sideNavLis = document.querySelectorAll('#side-nav-ul li');

  // 寻找所有menu
  var menus = document.querySelectorAll('.menus-box .menu');

  //事件委托
  //onmouseover与onmouseenter的区别就是,前者会冒泡,后者不会冒泡
  //因此在这里需要使用onmouseover
  sideNavUl.onmouseover = function (e) {

    //判断触发事件的这个元素的标签名小写过后是不是li标签
    //因为有的浏览器的标签名是小写有的是大写,因此在这里进行统一
    if(e.target.tagName.toLowerCase() == 'li'){

      // getAttribute--得到鼠标所触碰到的当前元素的属性值
      // 在这里也就是得到触碰到的li元素身上的data-t属性
        var t = e.target.getAttribute('data-t');

        // 排他操作--让所有的li都去掉current类名
        for(var j = 0; j < sideNavLis.length; j++){
          sideNavLis[j].className = sideNavLis[j].getAttribute('data-t');
        }

        //当前碰到的这个li,要加current类
        e.target.className += ' current';

        //寻找匹配的menu
        var themenu = document.querySelector('.menus-box .menu[data-t = ' + t + ']');

        //进行排他操作--让所有的menu都去掉 .current 类名
        for(var i = 0; i < menus.length; i++){
          menus[i].className = 'menu';
        }

        //而让鼠标移上去的对应的menu加上 .current 类名
        //当鼠标移到到相应的li标签上时,其对应的menu便会自动加上 .current 最后对应的display的属性值便为block
        themenu.className = 'menu current';
    }
  };

  // 当鼠标离开大盒子时,菜单要关闭
  sideNav.onmouseleave = function () {
    for(var i = 0; i < sideNavLis.length; i++){
      sideNavLis[i].className = sideNavLis[i].getAttribute('data-t');
      menus[i].className = 'menu';
    }
  };


})();

  • 16
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白小白从不日白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值