基于vue.js实现侧边菜单栏


Posted in Javascript onMarch 20, 2017

侧边菜单栏应该是很多项目里必不可少的 自己手写了一个
下面是效果图

 基于vue.js实现侧边菜单栏

下面就说一下实现的过程 还是比较简单的
首先导入一下需要的文件

<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css" rel="external nofollow" >
<link rel="stylesheet" type="text/css" href="css/font-awesome.min.css" rel="external nofollow" >
<link rel="stylesheet" type="text/css" href="css/nav.css" rel="external nofollow" >
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>

接下来就是我的html

<nav class="sider-bar small-bar">
 <ul>
  <li class="home_btn">
   <a href="javascript:;" id="full-bar" >
    <i class="fa fa-navicon nav_icon"></i>
   </a>
  </li>
  <li>
   <a href="javascript:;">
    <i class="fa fa-home nav_icon"></i>
    <span class="nav-text">主页</span>
   </a>
  </li>
  <li class="drop-show">
   <a href="javascript:;" >
    <i class="fa fa-cogs nav_icon"></i>
    <span class="nav-text">系统<i class="fa fa-angle-right nav_icon "></i></span>

   </a>
   <ul class="drop-list">
    <li><a href="user.html">用户管理</a></li>
    <li><a href="buttons.html">权限设置</a></li>
    <li><a href="buttons.html">操作日志</a></li>
    <li><a href="buttons.html">设备运行日志</a></li>
   </ul>
  </li>
  <li class="drop-show">
   <a href="javascript:;">
    <i class="fa fa-check-square-o nav_icon"></i>
    <span class="nav-text">防区 <i class="fa fa-angle-right nav_icon "></i></span>
   </a>
   <ul class="drop-list">
    <li><a href="buttons.html">防区管理</a></li>
   </ul>
  </li>
  <li class="drop-show">
   <a href="javascript:;">
    <i class="fa fa-info-circle nav_icon"></i>
    <span class="nav-text">警报 <i class="fa fa-angle-right nav_icon "></i></span>
   </a>
   <ul class="drop-list">
    <li><a href="buttons.html">历史报警曲线</a></li>
    <li><a href="buttons.html">报表统计</a></li>
    <li><a href="buttons.html">警情处理</a></li>
   </ul>
  </li>
  <li>
   <a href="#">
    <i class="fa fa-dashboard (alias) nav_icon"></i>
    <span class="nav-text">设备</span>
   </a>
  </li>
 </ul>
</nav>

然后是css

* {
 margin: 0;
 padding: 0;
}
body {
 font-family:Microsoft YaHei;
 font-size:14px;
}
li,ol,ul {
 list-style: none;
}
a {
 text-decoration: none;
 outline: 0;
}
a:hover,a:link{
 text-decoration:none;
}
.sider-bar{ 
 float:left;
 width:220px; 
 height:100%; 
 z-index:999;
 overflow:hidden;
 background:rgba(0,0,0,0.7); 
}
.sider-bar ul{ 
 width:100%; 
 float:left
}
.sider-bar ul li{ 
 width:100%; 
 float:left; 
 font-size:14px;
}
.sider-bar ul li a{ 
 padding:8px 10px;
 display:block;
 color:#fff; 
}
.sider-bar ul li.home_btn{ 
 background:#282D2D; 
 text-align:center
}
.sider-bar ul li.home_btn:hover{ 
 background:#282D2D
}
.sider-bar ul li a:hover{ 
 background:#0099CC;
}
.sider-bar ul li .nav_icon{ 
 font-size:18px; 
 margin:0 5px;
}
.small-bar{
 width:50px;
}
.small-bar li { 
 text-align:center;
}
.small-bar li a{
 display:block; 
 text-align:center
}
.small-bar li span{ 
 display:none
}
.small-bar ul li .nav_icon{ 
 font-size:24px; 
 margin:0
}
ul.drop-list{ 
 display:none; 
 margin-left:30px; 
 width:190px;
}
.fa-angle-right{ 
 float:right
}
body, html {
 height:100%;
}

最后也就是我的js

$(document).ready(function(){
 //展开主菜单
 $("#full-bar").click(function(){
  $(".sider-bar").toggleClass("small-bar");
  if($(".sider-bar").hasClass('small-bar')){
   $(".drop-list").slideUp();
  }
 });
 $(".drop-show").click(function(){
  if(!$(".sider-bar").hasClass('small-bar')){
   $(this).children(".drop-list").slideToggle();
   $(this).siblings('li').children(".drop-list").slideUp();
  }
 });
});

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

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

Javascript 相关文章推荐
javascript中length属性的探索
Jul 31 Javascript
Jquery UI震动效果实现原理及步骤
Feb 04 Javascript
DOM基础教程之事件对象
Jan 20 Javascript
Jquery代码实现图片轮播效果(一)
Aug 12 Javascript
jQuery新窗口打开外链接
Jul 21 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
Oct 10 Javascript
Vue数据驱动模拟实现2
Jan 11 Javascript
兼容浏览器的js事件绑定函数(详解)
May 09 Javascript
node通过npm写一个cli命令行工具
Oct 12 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
Oct 16 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
Jan 30 Javascript
微信小程序 参数传递实例代码
Mar 20 #Javascript
vue.js指令v-model使用方法
Mar 20 #Javascript
微信小程序中子页面向父页面传值实例详解
Mar 20 #Javascript
JS查找英文文章中出现频率最高的单词
Mar 20 #Javascript
vue.js中指令Directives详解
Mar 20 #Javascript
基于vue的fullpage.js单页滚动插件
Mar 20 #Javascript
windows下vue.js开发环境搭建教程
Mar 20 #Javascript
You might like
一个用mysql_odbc和php写的serach数据库程序
2006/10/09 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Python读取word文本操作详解
2018/01/22 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
Python 下载及安装详细步骤
2019/11/04 Python
python 等差数列末项计算方式
2020/05/03 Python
django rest framework serializers序列化实例
2020/05/13 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
SQL面试题
2013/04/30 面试题
施工资料员的岗位职责
2013/12/22 职场文书
先进个人获奖感言
2014/01/24 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
优秀员工事迹材料
2014/12/20 职场文书
教师节班会主持词
2015/07/06 职场文书
mysql事务隔离级别详情
2021/10/24 MySQL