js左侧下拉菜单效果demo示例(整理)

简介: js左侧下拉菜单效果demo示例(整理)
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>左侧下拉菜单</title>
  <style>
    *{
      margin: 0;
      padding: 0;
    }
    html,body{
      height: 100%;
    }
    .wrap{
      width: 260px;
      height: 100%;
      background-color: #363a45;
    }
    .head{
      width: 260px;
      height: 60px;
      background-color: #44495a;
      line-height: 60px;
      text-align: center;
      color: #fff;
      font-size: 20px;
    }
    .nav{
      width: 250px;
      margin: 10px 5px;
    }
    .nav-list h2{
      position: relative;
      width: 100%;
      height: 50px;
      background-color: #3889d4;
      line-height: 50px;
      text-align: center;
      color: #fff;
      font-size: 15px;
      transform: 0.5s;  /* css3过渡效果 */
    }
    .nav-list h2.on{
      background-color: #393c4a;
    }
    .nav-list{
      margin-bottom: 5px;
    }
    .nav-list i{
      position: absolute;
      right: 10px;
      top: 16px;
      border: 8px solid transparent;
      border-left-color: #fff;
      transform-origin: 1px 7px;  /* 变换的中心点 */
      transform: rotate(0deg);  /* css3变换属性  旋转 */
      transition: 0.5s;
    }
    .nav-list i.on{
      transform: rotate(90deg);
    }
    .hide{
      overflow: hidden;
      height: 0;
      transform: 0.5s;  /* css3过渡效果 */
    }
    .hide a{
      display: block;
      padding: 10px 0;
      background-color: #282c3a;
      border-bottom: 1px solid #42495d;
      color: #fff;
      text-align: center;
    }
  </style>
</head>
<body>
  <div class="wrap">
    <div class="head">我是医师</div>
    <div class="nav">
      <ul>
        <li class="nav-list">
          <h2>
            <i></i>
            师承收徒
          </h2>
          <div class="hide">
            <a href="#">远程诊疗</a>
            <a href="#">师承直播</a>
            <a href="#">我的弟子</a>
            <a href="#">问答解惑</a>
            <a href="#">师承管理</a>
            <a href="#">收徒设置</a>
          </div>
        </li>
        <li class="nav-list">
          <h2>
            <i></i>
            健康好货
          </h2>
          <div class="hide">
            <a href="#">我的商品</a>
            <a href="#">我的订单</a>
          </div>
        </li>
      </ul>
    </div>
  </div>
  <script>
  var aList = document.querySelectorAll('.nav-list h2');
  var aHide = document.querySelectorAll('.hide');
  var aIcon = document.querySelectorAll('.nav-list i');
  var lastIndex = 0;  //保存上一次的下标
  for (var i = 0; i < aList.length; i++) {
    aList[i].index = i;  //自定义属性保存下标
    aList[i].isClick = false; //初始没有被点击
    aList[i].onclick = function(){  //点击事件执行函数
      //清除上一次的样式 lastIndex上一次的下标
        aHide[lastIndex].style.height = '0'; 
        aList[lastIndex].className = ''; //变换颜色
        aIcon[lastIndex].className = ''; //改变小图标的角度
      if (this.isClick) {  //被点击了
        this.isClick = false; 
      }else{  //没有被点击
        //设置当前样式 this.index  当前的下标
        aHide[this.index].style.height = '245px';  //设置css属性  变换hide的高度
        aList[this.index].className = 'on';  //变换颜色
        aIcon[this.index].className = 'on';  //改变小图标的角度
        //保存上一次下标
        aList[lastIndex].isClick = false;
        this.isClick = true;
        lastIndex = this.index; //保存上一次的样式
      };
    }
  };
  </script>
</body>
</html>

相关文章
|
2月前
|
算法 JavaScript 前端开发
第一个算法项目 | JS实现并查集迷宫算法Demo学习
本文是关于使用JavaScript实现并查集迷宫算法的中国象棋demo的学习记录,包括项目运行方法、知识点梳理、代码赏析以及相关CSS样式表文件的介绍。
第一个算法项目 | JS实现并查集迷宫算法Demo学习
|
2月前
|
JavaScript 前端开发
JS配合CSS3实现动画和拖动小星星小Demo
本文通过代码示例展示了如何使用JavaScript和CSS3实现动画效果和拖动小星星的交互效果,包括文字掉落动画和鼠标拖动产生小星星动画的实现方法。
46 0
JS配合CSS3实现动画和拖动小星星小Demo
|
2月前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
56 3
|
3月前
|
前端开发 JavaScript 开发者
前端JS按钮点击事件、跳出弹窗、遮罩的实战示例
本文提供了一个前端JS按钮点击事件、弹出式窗口和遮罩层的实战示例,包括HTML、CSS和JavaScript的具体实现代码,以及功能解析,演示了如何实现按钮点击后触发弹窗显示和遮罩层,并在2秒后自动关闭或点击遮罩层关闭弹窗的效果。
前端JS按钮点击事件、跳出弹窗、遮罩的实战示例
|
3月前
|
JavaScript 前端开发
【Azure Developer】在App Service上放置一个JS页面并引用msal.min.js成功获取AAD用户名示例
【Azure Developer】在App Service上放置一个JS页面并引用msal.min.js成功获取AAD用户名示例
|
3月前
|
JavaScript 前端开发
JavaScript——一个简单的队列Demo
JavaScript——一个简单的队列Demo
41 4
|
3月前
|
JavaScript
js之三级联动示例
js之三级联动示例
47 1
|
3月前
|
JSON Dart 前端开发
分享15 个 JavaScript 代码示例及其 Dart 对应代码。
本文对比了React/React Native中的JavaScript语法与Flutter中的Dart语法,帮助开发者快速上手Flutter。内容涵盖JSON处理、数组操作、类型转换、条件判断等常见功能,如`JSON.stringify`与`JsonEncoder().convert`,`array.push`与`list.add`,`parseInt`与`int.parse`等,并提供了15个JavaScript与Dart代码示例对照。这对于从JavaScript转向Dart的开发者尤其有用。
27 0
|
3月前
|
存储 移动开发 JavaScript
JavaScript简介及示例
JavaScript简介及示例
|
4月前
|
JSON Dart 前端开发
JavaScript 代码示例及 Dart 对应代码
JavaScript 代码示例及 Dart 对应代码
49 5