目录
导航是指支持用户导航、进入和退出应用中不同内容片段的交互。导航菜单包含水平导航和垂直导航, 在 2.x 版本中,nav 组件属于 element 模块的子集
使用:需要加载导航模块,也需要引入核心的js文件
| API | 描述 |
|---|---|
| var element = layui.element | 获得 element 模块。 |
| element.render('nav', 'filter') | 导航菜单 nav 组件渲染。 |
element.render('nav', filter);
'nav' 是渲染导航的固定值filter : 对应导航容器 lay-filter 的属性值nav 组件会在元素加载完毕后,自动对导航完成一次渲染,因此该方法主要用于对动态插入的导航元素的初始化渲染。
- <div id="test">div>
- <script>
- layui.use(function(){
- var element = layui.element;
- var $ = layui.$;
- // 动态插入导航元素
- $('#test').html(`
- <div class="layui-nav" lay-filter="demo-filter-nav">
- <li class="layui-nav-item layui-this"><a href="">选中a>li>
- <li class="layui-nav-item"><a href="">菜单a>li>
-
- div>
- `);
- // 渲染导航组件
- element.render('nav', 'demo-filter-nav');
- });
- script>
| 属性 | 描述 |
|---|---|
| lay-shrink | 导航容器属性。展开子菜单时,是否收缩兄弟节点已展开的子菜单。可选值:
|
| lay-bar | 导航容器属性。用于禁用滑块跟随功能。如: |
| lay-unselect | 导航菜单项属性。 设置后,点击对应菜单项时,不会出现选中效果。 |
element.on('nav(filter)', callback)
nav(filter) 是一个特定结构。
nav 为导航事件固定值;filter 为导航容器属性 lay-filter 对应的值。callback 为事件执行时的回调函数,并返回一个 object 类型的参数。当点击导航父级菜单和二级菜单时触发。示例:
- <div class="layui-nav" lay-filter="demo-filter-nav">
- <li class="layui-nav-item"><a href="javascript:;">菜单1a>li>
- <li class="layui-nav-item"><a href="javascript:;">菜单2a>li>
- div>
- <script>
- layui.use(function(){
- var element = layui.element;
- var layer = layui.layer;
-
- // 导航点击事件
- element.on('nav(demo-filter-nav)', function(elem){
- console.log(elem); // 得到当前点击的元素 jQuery 对象
- layer.msg(elem.text());
- });
- });
- script>

一般用于页面头部菜单。样式规则如下:
class="layui-nav" 设置导航容器class="layui-nav-item" 设置导航菜单项
className 为 layui-this 可设置菜单选中项class="layui-nav-child" 设置导航子菜单项
className 为 layui-nav-child-c 和 layui-nav-child-r 可设置子菜单居中和向右对齐- <ul class="layui-nav">
- <li class="layui-nav-item layui-this"><a href="nav.html">选中a>li>
- <li class="layui-nav-item">
- <a href="javascript:;">常规a>
- li>
- <li class="layui-nav-item"><a href="nav.html">导航a>li>
- <li class="layui-nav-item">
- <a href="javascript:;">子级a>
- <dl class="layui-nav-child">
- <dd><a href="nav.html">菜单1a>dd>
- <dd><a href="nav.html">菜单2a>dd>
- <dd><a href="nav.html">菜单3a>dd>
- dl>
- li>
- <li class="layui-nav-item">
- <a href="javascript:;">选项a>
- <dl class="layui-nav-child">
- <dd><a href="nav.html">选项1a>dd>
- <dd class="layui-this"><a href="nav.html">选项2a>dd>
- <dd><a href="nav.html">选项3a>dd>
- dl>
- li>
- <li class="layui-nav-item"><a href="nav.html">演示a>li>
- ul>
备注:滑块效果仅跟随不存在子菜单的菜单项

一般用于左侧侧边菜单。样式规则如下:
class 规则上,通过设置 class="layui-nav layui-nav-tree" 定义垂直导航容器。class="layui-nav-itemed" 设置父菜单项为展开状态class="layui-nav-side" 可设置侧边垂直导航- <ul class="layui-nav layui-nav-tree">
- <li class="layui-nav-item layui-nav-itemed">
- <a href="javascript:;">默认展开a>
- <dl class="layui-nav-child">
- <dd><a href="javascript:;">选项1a>dd>
- <dd><a href="javascript:;">选项2a>dd>
- <dd><a href="javascript:;">选项3a>dd>
- dl>
- li>
- <li class="layui-nav-item">
- <a href="javascript:;">默认收缩a>
- <dl class="layui-nav-child">
- <dd><a href="javascript:;">选项1a>dd>
- <dd><a href="javascript:;">选项2a>dd>
- <dd><a href="javascript:;">选项3a>dd>
- dl>
- li>
- <li class="layui-nav-item"><a href="javascript:;">菜单1a>li>
- <li class="layui-nav-item"><a href="javascript:;">菜单2a>li>
- <li class="layui-nav-item"><a href="javascript:;">菜单3a>li>
- ul>

- html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>侧边垂直导航 - Layuititle>
- <meta name="renderer" content="webkit">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <link href="/cdn.staticfile.org/layui/2.8.0/css/layui.css" rel="stylesheet">
- head>
- <body>
- <ul class="layui-nav layui-nav-tree layui-nav-side">
- <li class="layui-nav-item layui-nav-itemed">
- <a href="javascript:;">默认展开a>
- <dl class="layui-nav-child">
- <dd><a href="javascript:;">选项1a>dd>
- <dd><a href="javascript:;">选项2a>dd>
- <dd><a href="javascript:;">选项3a>dd>
- dl>
- li>
- <li class="layui-nav-item">
- <a href="javascript:;">默认收缩a>
- <dl class="layui-nav-child">
- <dd><a href="javascript:;">选项1a>dd>
- <dd><a href="javascript:;">选项2a>dd>
- <dd><a href="javascript:;">选项3a>dd>
- dl>
- li>
- <li class="layui-nav-item"><a href="javascript:;">菜单1a>li>
- <li class="layui-nav-item"><a href="javascript:;">菜单2a>li>
- <li class="layui-nav-item"><a href="javascript:;">菜单3a>li>
- ul>
- <script src="/cdn.staticfile.org/layui/2.8.0/layui.js">script>
- <script>
- layui.use(function(){
- var element = layui.element;
- element.render('nav');
- });
- script>
- body>
- html>

给导航容器追加任意背景色 class
- <ul class="layui-nav layui-bg-gray">
- <li class="layui-nav-item"><a href="nav.html">浅色导航a>li>
- <li class="layui-nav-item"><a href="nav.html">菜单1a>li>
- <li class="layui-nav-item"><a href="nav.html">菜单2a>li>
- <li class="layui-nav-item">
- <a href="javascript:;">更多a>
- <dl class="layui-nav-child">
- <dd><a href="nav.html">选项1a>dd>
- <dd><a href="nav.html">选项2a>dd>
- <dd><a href="nav.html">选项3a>dd>
- dl>
- li>
- <li class="layui-nav-item"><a href="nav.html">菜单3a>li>
- ul>
-
- <br>
-
- <ul class="layui-nav layui-bg-cyan">
- <li class="layui-nav-item"><a href="nav.html">藏青导航a>li>
- <li class="layui-nav-item"><a href="nav.html">菜单1a>li>
- <li class="layui-nav-item"><a href="nav.html">菜单2a>li>
- <li class="layui-nav-item">
- <a href="javascript:;">更多a>
- <dl class="layui-nav-child">
- <dd><a href="nav.html">选项1a>dd>
- <dd><a href="nav.html">选项2a>dd>
- <dd><a href="nav.html">选项3a>dd>
- dl>
- li>
- <li class="layui-nav-item"><a href="nav.html">菜单3a>li>
- ul>
- <br>
-
- <ul class="layui-nav layui-bg-green" lay-bar="disabled">
- <li class="layui-nav-item"><a href="nav.html">墨绿导航a>li>
- <li class="layui-nav-item"><a href="nav.html">菜单1a>li>
- <li class="layui-nav-item"><a href="nav.html">菜单2a>li>
- <li class="layui-nav-item">
- <a href="javascript:;">更多a>
- <dl class="layui-nav-child">
- <dd><a href="nav.html">选项1a>dd>
- <dd><a href="nav.html">选项2a>dd>
- <dd><a href="nav.html">选项3a>dd>
- dl>
- li>
- <li class="layui-nav-item"><a href="nav.html">菜单3a>li>
- ul>
- <br>
-
- <ul class="layui-nav layui-bg-blue" lay-bar="disabled">
- <li class="layui-nav-item"><a href="nav.html">蓝色导航a>li>
- <li class="layui-nav-item"><a href="nav.html">菜单1a>li>
- <li class="layui-nav-item"><a href="nav.html">菜单2a>li>
- <li class="layui-nav-item">
- <a href="javascript:;">更多a>
- <dl class="layui-nav-child">
- <dd><a href="nav.html">选项1a>dd>
- <dd><a href="nav.html">选项2a>dd>
- <dd><a href="nav.html">选项3a>dd>
- dl>
- li>
- <li class="layui-nav-item"><a href="nav.html">菜单3a>li>
- ul>

- <ul class="layui-nav">
- <li class="layui-nav-item">
- <a href="nav.html">带徽章<span class="layui-badge">9span>a>
- li>
- <li class="layui-nav-item">
- <a href="nav.html">小圆点<span class="layui-badge-dot">span>a>
- li>
- <li class="layui-nav-item" lay-unselect>
- <a href="javascript:;">
- <img src="https://unpkg.com/outeres@0.0.10/demo/avatar/1.jpg" class="layui-nav-img">
- a>
- <dl class="layui-nav-child">
- <dd><a href="javascript:;">子级菜单a>dd>
- <dd><a href="javascript:;">横线隔断a>dd>
- <hr>
- <dd style="text-align: center;"><a href="nav.html">退出a>dd>
- dl>
- li>
- ul>

面包屑导航主要用于指示当前页面所处的位置,并能返回到上级页面。
- <h3>默认面包屑h3>
- <span class="layui-breadcrumb">
- <a href="/index.html">首页a>
- <a href="https://layui.dev/demo/">演示a>
- <a><cite>导航元素cite>a>
- span>
- <h3>自定义分隔符h3>
- <span class="layui-breadcrumb" lay-separator=">">
- <a href="nav.html">首页a>
- <a href="nav.html">国际新闻a>
- <a href="nav.html">亚太地区a>
- <a><cite>正文cite>a>
- span>
- <h3>门户频道h3>
- <span class="layui-breadcrumb" lay-separator="|">
- <a href="nav.html">娱乐a>
- <a href="nav.html">八卦a>
- <a href="nav.html">体育a>
- <a href="nav.html">搞笑a>
- <a href="nav.html">视频a>
- <a href="nav.html">游戏a>
- <a href="nav.html">综艺a>
- span>

element.render('breadcrumb', filter);
'breadcrumb' 是渲染面包屑导航的固定值filter : 对应面包屑导航容器 lay-filter 的属性值该方法主要用于对动态插入的面包屑导航的初始化渲染,用法同上述导航菜单