angular实现导航菜单切换

本文实例为大家分享了angular实现导航菜单切换的具体代码,供大家参考,具体内容如下

js部分:

$scope.navArr=[{
        task:{
            title: "我的任务",
            showAdd: true,
            data:[
                {
                    title:'我的设计院',
                    id:1,
                    hasChild:false,
                    active:true,
                },
                {
                    title:'我加入的设计院',
                    id:2,
                    hasChild:true,
                    active:false,
                    data:[
                        {title:"设计院1",active:true},
                        {title:"设计院2",active:false}
                    ]
                },
                {
                    title:'验证消息',
                    id:3,
                    hasChild:false,
                    active:false,
                },
                {
                    title:'我参与的设计院',
                    id:3,
                    hasChild:true,
                    active:false,
                    data:[
                        {title:"设计院3",active:true},
                        {title:"设计院4",active:false}
                    ]
                },
            ]
        }
        }];
    
    $scope.showItem=false;
    $scope.showId=null;
    //给菜单项添加事件
    $scope.changNavMenu=function(item,arr,hasChild){
        for(let i of arr){
            if(i==item){
                i.active=true;
                showNav(hasChild,i.id)
            }else{
                i.active=false; 
            }
        }
    }
    function showNav(hasChild,id){
        if($scope.showId!=id){
            $scope.showItem=false;
            $scope.showId=id;
        }
        if(hasChild){
            if($scope.showItem==false){
                $scope.showItem=true
            }else if($scope.showItem==true){
                $scope.showItem=false
            }
        }
    }
    // 给二级菜单添加点击事件
    $scope.changTwoNav=function(item,arr){
        for(let i of arr){
            if(i==item){
                i.active=true;
            }else{
                i.active=false; 
            }
        }
        event.stopPropagation();
    }

html片段:

<div class="two_level_box">
  <!-- title -->
  <p class="menu-title">{{navArr[0].task.title}}</p>
  <!-- add -->
  <div class="add-pro-btn" ng-if="navArr[0].task.showAdd">
    <span>+ 快速立项</span>
  </div>
  <!--一级菜单-->
  <ul class="navMenu">
    <li ng-click="changNavMenu(item,navArr[0].task.data,item.hasChild)" ng-class="{active:item.active}" ng-repeat="item in navArr[0].task.data">
      <a href=""><b ng-class="{b_active:showItem&&item.active}" ng-if="item.hasChild"></b> {{item.title}}</a>
      <ul class="subMenu closeSubMenu" ng-class="{true:'subMenu',false:'closeSubMenu'}[showItem&&item.active]">
        <li ng-if="item.hasChild" ng-class="{active:i.active&&item.active}" ng-click="changTwoNav(i,item.data)" ng-repeat="i in item.data">
            <a href="">{{i.title}}</a>
        </li>
      </ul>
    </li>
  </ul>
  </ul>
</div>

css:

.two_level_box{
  float:left;
  width: 139px;
  height: 100%;
  background: #fff;
}
.menu-title{
  margin:10px;
}
.add-pro-btn{
  cursor: pointer;
  margin:10px;
}
.add-pro-btn span{
  display: inline-block;
  width:100%;
  text-align: center;
  border:1.5px solid #EE6133;
  border-radius: 20px;
  padding:2px;
  color:#EE6133;
}
.navMenu>li>a{
  margin:8px 0;
  padding:10px;
}
.navMenu>li{
  margin:8px 0;
  padding:0;
}
.navMenu li a{
  color:#000;
}
.navMenu>.active>a{
  color:#EE6133;
}
.subMenu .active{
  background-color: #FACFC1;
  border-right:2px solid #EE6133;
}
.closeSubMenu{
  display: none;
}
.subMenu li{
  padding:5px 0;
  border-right:2px solid #fff;
}
.subMenu li a{
  padding-left:30px;
}
.navMenu b{
  display: inline-block;
  width:8px;
  height:0;
  border-left:5px solid #A9A9A9;
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
}
.navMenu .b_active{
  border-top:5px solid #A9A9A9;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
}

实现效果图:

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

(0)

相关推荐

  • Angular实现二级导航栏

    本文实例为大家分享了Angular实现二级导航栏的具体代码,供大家参考,具体内容如下 1.将菜单放入数据库: 模拟放到该路径下:src/assets/json/header.json {     "siteName": "PGG娱乐健身中心",     "menu":[       {         "id":"1",         "menuName":"首页"

  • Angular2 (RC5) 路由与导航详解

    之前总结过RC4的路由配置,Angular2升级RC5之后增加了NgModule和RouterModule等等很多组件,所以现在的路由配置方式也变化比较大. 1.<base href> 大多数带路由的应用都要在 index.html 的 <head>标签下顶部添加一个<base>元素. 2.配置路由器 app.routing.ts import { Routes, RouterModule } from '@angular/router'; const appRoute

  • Angular2 之 路由与导航详细介绍

    导航是很简单的,只是不同页面之间的切换,路由是实现导航的一种. 一个url对应的一个页面,在angular2中是一个组件.定义一个规则. 基础知识 大多数带路由的应用都要在index.html的标签下先添加一个元素,来告诉路由器该如何合成导航用的URL. 路由是从@angular/router包中引入的. 路由都是需要进行配置的.而这个配置需要的也就是RouterModule模块. 一个路由配置 path中不能用斜线/开头. 这些路由的定义顺序是故意如此设计的. 路由器使用先匹配者优先的策略来匹

  • AngularJS+Bootstrap3多级导航菜单的实现代码

    将介绍如何用AngularJS构建一个强大的web前端系统.angularjs是由Google团队开发的一款非常优秀web前端框架.在当前如此多的web框架下,AngularJS能脱颖而出,从架构设计上就高人一等,双向数据绑定,依赖注入,指令,MVC,模板.Angular.js创新地把后台技术融入前端开发,扫去jQuery一度的光芒.用angularjs就像写后台代码,更规范,更结构化,更可控. 本文将介绍如何实现多限级导航菜单. 目录 1.静态多级菜单实现 2.动态多级菜单实现 1. 静态多级

  • Angular2 (RC4) 路由与导航详解

    基础知识 1.<base href> 大多数带路由的应用都要在 index.html 的 <head>标签下添加一个 <base>元素. 2.导入路由库 import { ROUTER_DIRECTIVES } from '@angular/router'; 3.配置 首选方案是用带"路由数组"的provideRouter工厂函数([provideRouter(routes)])来启动此应用. app.routes.ts import { provi

  • angular实现导航菜单切换

    本文实例为大家分享了angular实现导航菜单切换的具体代码,供大家参考,具体内容如下 js部分: $scope.navArr=[{         task:{             title: "我的任务",             showAdd: true,             data:[                 {                     title:'我的设计院',                     id:1,            

  • vue2.0实现导航菜单切换效果

    本文实例为大家分享了vue2.0实现导航菜单切换的具体代码,供大家参考,具体内容如下 css *{ margin:0; padding: 0; } ul li{ list-style: none; } .navul{ margin:100px auto 20px; overflow: hidden; } .navul li{ background-color: #5597b4; padding:18px 30px; float:left; color: #fff; font-size: 18px

  • js实现多选项切换导航菜单的方法

    本文实例讲述了js实现多选项切换导航菜单的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>多选项切换导航菜单</title> </head> <style type="text/c

  • jQuery实现简单漂亮的Nav导航菜单效果

    本文实例讲述了jQuery实现简单漂亮的Nav导航菜单效果.分享给大家供大家参考,具体如下: 自己写的一个简单的导航菜单,先看效果: 鼠标悬浮时菜单项向上移动成蓝底白字,点击之后底部会有蓝条表示当前选中项. 页面代码,菜单的每一项都是一个 div ,其中包括一个 ul 用来放置显示文字等,另一个 div 则是底部的蓝条,需要给第一项和最后一项设置不同的 class ,样式需要用到: <div id="nav"> <div class="navItem ind

  • 基于jquery实现百度新闻导航菜单滑动动画

    本文实例为大家分享jquery实现百度新闻导航菜单滑动动画,供大家参考,具体内容如下 思路与步骤 1.利用UL创建简单横向导航: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/199

  • js实现仿爱微网两级导航菜单效果代码

    本文实例讲述了js实现仿爱微网两级导航菜单效果代码.分享给大家供大家参考.具体如下: 这是一款仿爱微网两级导航菜单,tab选项卡形式的导航菜单,原生js做的tab选项卡型的导航菜单,需要鼠标点击才切换出二级子菜单,可修改成鼠标移过去就更换内容的形式. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-fawei-web-nav-menu-style-codes/ 具体代码如下: <html> <head> <title&g

  • js+div+css下拉导航菜单完整代码分享

    效果预览:http://keleyi.com/keleyi/phtml/menu/1.htm 下拉菜单 js+div+css下拉导航菜单完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w

  • jquery实现的仿天猫侧导航tab切换效果

    本文实例讲述了jquery实现的仿天猫侧导航tab切换效果.分享给大家供大家参考.具体如下: 这里演示jquery实现仿天猫侧导航tab切换效果,引入外部JS,若初次运行有错误请刷新一页面即可.本菜单是仿天猫商城的菜单,大块的div菜单,支持超多的产品分类,大网站风格,大气实用的多分类网页菜单. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-ftmail-nav-tab-cha-codes/ 具体代码如下: <!DOCTYPE h

  • jQuery实现Flash效果上下翻动的中英文导航菜单代码

    本文实例讲述了jQuery实现Flash效果上下翻动的中英文导航菜单代码.分享给大家供大家参考.具体如下: 这是一款jQuery实现Flash效果鼠标感应式的翻动导航菜单,支持中英文切换,所使用的jQuery类库版本为1.3.2. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-flash-style-sx-cha-chen-menu-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//

随机推荐