Layui之组件的基本使用及案例演示2

简介: Layui之组件的基本使用及案例演示2

二.实用案例👨🏻‍💻

1.标签卡

步骤:

1.1 .参考官方文档(上方已标注)是否有控件/模块,支持完成对应的功能-静态

<div class="layui-tab" lay-filter="demo" lay-allowclose="true">
  <ul class="layui-tab-title">
    <li class="layui-this" lay-id="11">网站设置</li>
    <li lay-id="22">用户管理</li>
    <li lay-id="33">权限分配</li>
    <li lay-id="44">商品管理</li>
    <li lay-id="55">订单管理</li>
  </ul>
  <div class="layui-tab-content">
    <div class="layui-tab-item layui-show">内容1</div>
    <div class="layui-tab-item">内容2</div>
    <div class="layui-tab-item">内容3</div>
    <div class="layui-tab-item">内容4</div>
    <div class="layui-tab-item">内容5</div>
  </div>
</div>
<div class="site-demo-button" style="margin-bottom: 0;">
  <button class="layui-btn site-demo-active" data-type="tabAdd">新增Tab项</button>
  <button class="layui-btn site-demo-active" data-type="tabDelete">删除:商品管理</button>
  <button class="layui-btn site-demo-active" data-type="tabChange">切换到:用户管理</button>
</div>

1.2.将静态选项卡转换成动态选项卡

1.2.1删减后再进行添加Js代码实现将静态选项卡转换成动态选项卡

//新增一个Tab项
function openTab(title,content,id){
  element.tabAdd('demo', {
      title: '新选项'+ (Math.random()*1000|0) //用于演示
      ,content: '内容'+ (Math.random()*1000|0)
      ,id: new Date().getTime() //实际使用一般是规定好的id,这里以时间戳模拟下
    })
}

效果:

1.3.将静态标签名变成实际菜单名

var element,layer,util,$;
layui.use(
['jquery', 'element', 'layer', 'util' ],
function() {
   element = layui.element, layer = layui.layer, util = layui.util, $ = layui.$;
  $
  .ajax({
    url : "permission.action?methodName=menus",
    dataType : 'json',
    success : function(data) {
      console.log(data)
      var htmlStr = '';
      $.each(data,function(i, n) {
            htmlStr += '<li class="layui-nav-item layui-nav-itemed">';
            htmlStr += '<a class="" href="javascript:;">'
                + n.text
                + '</a>';
            if (n.hasChildren) {
              var children = n.children;
                htmlStr += '<dl class="layui-nav-child">';
              $.each(children,function(
                          idx,
                          node) { // 使用 children 进行遍历
                        htmlStr += '<dd><a href="javascript:;" onclick="openTab(\''+node.text+'\',\''+node.attributes.self.url+'\',\''+node.id+'\')">'
                            + node.text
                            + '</a></dd>'; // 生成子节点的HTML字符串
                      });
              htmlStr += '</dl>'; // 注意闭合 <dl> 标签位置
            }
            htmlStr += '</li>'; // 注意闭合 <li> 标签位置
          });
  $("#menu").html(htmlStr);
  element.render('menu');
    }
  })
});

1.4.再次点击的选项卡会选中不会打开新的选项卡

在打开选项卡的基础上做一个判断并做一个切换选项卡的操作

function openTab(title,content,id){
       // 新增一个 tab 项
         var $node = $('li[lay-id="'+id+'"]');
       if($node.length ==0){
         element.tabAdd('demo', {
                title:title  //用于演示
                ,content: content
                ,id: id //实际使用一般是规定好的id,这里以时间戳模拟下
              })
       }
      element.tabChange('demo',id);//切换选项卡
    }

注:

中的demo对应的是

中的demo

在将静态数据变成动态数据时需要将前端代码改写成

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script src="static/js/index.js"></script>
<%@include file="/common/header.jsp"%>
</head>
<body>
  <div class="layui-layout layui-layout-admin">
    <div class="layui-header">
      <div class="layui-logo layui-hide-xs layui-bg-black">layout
        demo</div>
      <!-- 头部区域(可配合layui 已有的水平导航) -->
      <ul class="layui-nav layui-layout-left">
      </ul>
      <!-- 个人头像及账号操作 -->
      <ul class="layui-nav layui-layout-right">
        <li class="layui-nav-item layui-hide layui-show-md-inline-block">
          <a href="javascript:;"> <img
            src="//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg"
            class="layui-nav-img"> tester
        </a>
          <dl class="layui-nav-child">
            <dd>
              <a href="">Your Profile</a>
            </dd>
            <dd>
              <a href="">Settings</a>
            </dd>
          </dl>
        </li>
        <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect>
          <a href="javascript:;"> <i
            class="layui-icon layui-icon-more-vertical"></i>
        </a>
        </li>
      </ul>
    </div>
    <div class="layui-side layui-bg-black">
      <div class="layui-side-scroll">
        <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
        <ul id="menu" class="layui-nav layui-nav-tree" lay-filter="menu">
        </ul>
      </div>
    </div>
    <div class="layui-body">
      <!-- 内容主体区域 -->
<div class="layui-tab" lay-filter="demo" lay-allowclose="true">
  <ul class="layui-tab-title">
    <li class="layui-this" lay-id="11">网站设置</li>
  </ul>
  <div class="layui-tab-content">
    <div class="layui-tab-item layui-show">内容1</div>
    <div class="layui-tab-item">内容2</div>
    <div class="layui-tab-item">内容3</div>
    <div class="layui-tab-item">内容4</div>
    <div class="layui-tab-item">内容5</div>
  </div>
</div>
    </div>
    <div class="layui-footer">
      <!-- 底部固定区域 -->
      底部固定区域
    </div>
  </div>
  <script>
//JS 
  </script>
</body>
</html>

总结:

Layui的组件很多,想要自己的网页功能更加完善,界面更加好看,就需要不断得去学习新的组件,先了解该框架有没有该功能,再参考官方文档,文档中有详细注解,总之,Layui是一款开源框架供我们学习使用还是非常友好的

今天的学习总结就到这里💪💪💪

目录
相关文章
|
6月前
|
小程序
小程序学习笔记(7) -- 自定义组件案例
小程序学习笔记(7) -- 自定义组件案例
|
前端开发 JavaScript
Layui之组件的基本使用及案例演示1
Layui之组件的基本使用及案例演示1
97 0
|
XML 前端开发 程序员
Layui入门及案例演示2
Layui入门及案例演示2
80 0
|
6月前
|
JavaScript
Javaweb之Vue组件库Element案例分页工具栏的详细解析
4.4.3.5.3 分页工具栏 分页条我们之前做过,所以我们直接找到之前的案例,复制即可,代码如下: 其中template模块代码如下:
98 0
|
11月前
Swiper插件的基本使用方法和案例(二)
Swiper插件的基本使用方法和案例
|
11月前
|
JavaScript 前端开发 编译器
Swiper插件的基本使用方法和案例(一)
Swiper插件的基本使用方法和案例
|
安全 数据安全/隐私保护
ElementUI基本介绍及登录注册案例演示3
ElementUI基本介绍及登录注册案例演示3
58 1
|
前端开发 JavaScript API
ElementUI基本介绍及登录注册案例演示2
ElementUI基本介绍及登录注册案例演示2
157 0
|
JavaScript 前端开发 API
ElementUI基本介绍及登录注册案例演示1
ElementUI基本介绍及登录注册案例演示1
79 0
|
开发框架 前端开发 开发者
Layui入门及案例演示1
Layui入门及案例演示1
124 0