LayUI(一)学习笔记

前言

因为公司用的前端框架是LayUI,之前都没有接触过,所以最近都在自学LayUI,可以直接通过官方文档进行学习,学习之后发现其实所有前端框架都差不多,以下为笔记内容.



一、简要介绍

  • 概念

layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用 ,其他UI框架:Bootstrap . Element . EasyUI . LayUI等等.

  • LayUI的使用

1)官网首页下载:https://www.layui.com/

在这里插入图片描述
目录结构:
在这里插入图片描述
2)引入layui核心文件:

layui/css/layui.css // layui中内置的样式
layui/layui.js //layui中核心的js插件(模块化使用) layui/layui.all.js // layui中所有的js

3)示例:

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Insert title here</title>
	<!-- 引入layui的css样式 -->
	<link rel="stylesheet" href="layui/css/layui.css" />
</head>
<body>

<!-- 注意:
1. 在JS引入时 若引入多个JS, JS之间存在依赖性.则优先引入被依赖的JS
2. 一般引入JS,在body的最后面引入,因为代码自上而下的执行,这样可以等页面的DOM元素都加载了引入JS,避免不生效和异常问题-->
	
	<!-- 引入layui中JS -->
	<script type="text/javascript" src="layui/layui.js"></script>
	<script type="text/javascript">
		//初始化layui模块
		layui.use(['form','jquery'],function(){
		//初始化模块的对象
		// 初始化jquery对象
		var $ = layui.jquery;
		//初始化form表单模块对象
		var form = layui.form;
	});
	</script>
</body>
</html>


二、页面元素

1.布局

栅格系统:容器进行了 12 等分,预设了 4*12 种 CSS 排列类,它们在移动设备、平板、桌面中/大尺寸四种不同的屏幕下发挥着各自的作用.

  • 栅格布局规则

1)采用 layui-row 来定义行

2)采用类似 layui-col-md** 这样的预设类来定义一组列(column),且放在行(row)内。其中:变量md* 代表的是不同屏幕下的标记(可选值见下文)变量**代表的是该列所占用的12等分数(如6/12),可选值为 1 - 12如果多个列的“等分数值”总和等于12,则刚好满行排列。如果大于12,多余的列将自动另起一行。

3)列可以同时出现最多四种不同的组合,分别是:xs(超小屏幕,如手机)、sm(小屏幕,如平板)、md(桌面中等屏幕)、lg(桌面大型屏幕),以呈现更加动态灵活的布局。

4)可对列追加类似 layui-col-space5、 layui-col-md-offset3 这样的预设类来定义列的内边距的间距和偏移(自身所在容器的12等份)。

5)最后,在列(column)元素中放入你自己的任意元素填充内容,完成布局


2.颜色

在这里插入图片描述

样式 颜色
class=“layui-bg-red” 赤色,比较引人注意的颜色
class=“layui-bg-orange” 橙色,一般用于提示性元素
class=“layui-bg-green” 墨绿,通常用于按钮、及任何修饰元素
class="layui-bg-cyan " 藏青:侧边或底部普遍采用的颜色
class=“layui-bg-blue” 蓝色:比较适合一些鲜艳色系的页面
class=“layui-bg-black” 雅黑:通常用于导航
class=“layui-bg-gray” 银灰:背景、边框

3.字体图标
  • 通过对一个内联元素(一般推荐用 i标签)设定 class=“layui-icon”,来定义一个图标.然后对元素加上图标对应的字体图标.

1)layui-icon : 表示是一个字体图标

2)layui-icon-XXXX:具体的内置图标

3)字体图标在LayUI中有两种表现方式

  • 1.使用class样式

  • 2.使用图标字符集

<p>字体图标</p>
<!-- 使用class样式 -->
<i class="layui-icon layui-icon-rate"></i>
<!-- 使用特殊的字体字符集 -->
<i class="layui-icon">&#xe67b;</i>

4.动画
  • 内置动画,使用: class=“layui-anim” 表示是动画,动画Layui内置8种,后面跟具体的动画效果
动画样式 动画效果
class=“layui-anim layui-anim-up” 从最底部往上滑入
class=“layui-anim layui-anim-upbit” 微微向上划入
class=“layui-anim layui-anim-scale” 平滑放大
class=“layui-anim layui-anim-scaleSpring” 弹簧式放大
class=“layui-anim layui-anim-fadein” layui-anim-fadein
class=“layui-anim layui-anim-fadeout” 渐隐
class=“layui-anim layui-anim-rotate” 360旋转
class=“layui-anim layui-anim-loop” 循环动画

5.按钮(常用)
  • 使用class = “layui-btn” 表示按钮样式

1)颜色
在这里插入图片描述

名称 组合
原始 class=“layui-btn layui-btn-primary”
默认 class=“layui-btn”
百搭 class=“layui-btn layui-btn-normal”
暖色 class=“layui-btn layui-btn-warm”
警告 class=“layui-btn layui-btn-danger”
禁用 class=“layui-btn layui-btn-disabled”

2)尺寸
在这里插入图片描述
在这里插入图片描述

3)形状

  • class=" layui-btn-radius" :表示圆角

在这里插入图片描述
4)图标按钮: 即将button和i标签使用字体图标结合

<button class="layui-btn layui-btn-lg layui-btn-danger">
<i class="layui-icon layui-icon-fire"></i>按钮
</button>

5)按钮组

class=“layui-btn-group” 将多个按钮放在一起,可以缩小默认的按钮之间的间隙


6.导航
  • layui默认导航是水平导航,使用: class=“layui-nav”,class=“layui-nav-item” : 表示导航中的项

1)水平导航(class=“layui-nav” )

  • class=“layui-nav-item” 表示导航中的具体项
  • class=“layui-nav-child” 表示导航项中的子项
  • class=“layui-this” 表示当前被选中的项

2)垂直导航(class=“layui-nav layui-nav-tree”)

  • class=“layui-nav-itemed” : 被展开的导航项
  • class=“layui-nav-side” : 会垂直占一列

7.Tab选项卡

导航菜单可应用于头部和侧边,Tab选项卡提供多套风格,支持响应式,支持删除选项卡等功能.在layui中,**class=“layui-tab”**表示是一个选项卡

  • class=“layui-tab-title” : 表示选项卡的标题
  • class=“layui-this” : 表示当前被选中的项
  • class=“layui-tab-content” : 表示选项卡中的内容
  • class=“layui-tab-item” : 表示内容项
  • class=“layui-show” : 表示当前内容项会展示

1)选项卡风格

在这里插入图片描述

2)特殊属性

在这里插入图片描述
3)事件

在这里插入图片描述

4)示例

<!DOCTYPE html>
<html>
	<head>
	<meta charset="UTF-8">
	<title>Insert title here</title>
	<!-- 引入layui的css样式 -->
	<link rel="stylesheet" href="layui/css/layui.css" />
	</head>
	
	<body>
	<div class="layui-tab" lay-allowClose="true" lay-filter="myTab">
	<ul class="layui-tab-title">
		<li class="layui-this">网站设置</li>
		<li>用户管理</li>
		<li>权限分配</li>
		<li>商品管理</li>
		<li>订单管理</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>
	<button id="addBtn">新增一个选项卡</button>
	<button id="addBtn2">切换选项卡</button>
		<!-- 引入layui中JS -->
		<script type="text/javascript" src="layui/layui.js"></script>
		<script type="text/javascript">
		//初始化layui模块
		layui.use(['element','jquery'],function(){
			var element = layui.element;
			var $ = layui.jquery;
		//选项卡事件:
		//选项卡切换事件
			element.on('tab(myTab)',function(data){//tab(lay-filter的值)
			console.log(data);
			//当前选项信息: 整个选项卡信息以及当前信息
			console.log(data.elem);
			console.log("get(0):"+data.elem.get(0)); 
			// 获取上一个选项
			console.log(data.elem.prevObject);
			//所在选项卡的下标索引, 从 0 开始
			console.log(data.index);
		});
		
			//选项卡删除事件
			element.on('tabDelete(myTab)', function(data){//tab(lay-filter的值)
			console.log(this); //当前Tab标题所在的原始DOM元素
			console.log(data.index); //得到当前Tab的所在下标
			console.log(data.elem); //得到当前的Tab大容器
			});
			
			//为按钮绑定点击事件
			$("#addBtn").click(function(){
			//新增选项卡
			var tab = {
			title: '新增选项卡的标题',
			content: '选项卡的内容', //支持传入html
			id: '999'
			};
			element.tabAdd("myTab", tab);
		});
		
			//切换选项卡
			$("#addBtn2").click(function(){
			//切换选项卡 tabChange("lay-filter的值", lay-id值);
			element.tabChange("myTab", 999);
			});
		});
		</script>
	</body>
</html>

8.进度条

在layui中,使用class="layui-progress"表示进度条.

  • class=“layui-progress-bar” 表示具体的进度条

  • class=“layui-progress-big” 表示尺度大号

1)属性
在这里插入图片描述

2)事件
在这里插入图片描述

3)示例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
		<!-- 引入layui的css样式 -->
		<link rel="stylesheet" href="layui/css/layui.css" />
	</head>
	
	<body style="padding: 100px">
		<!-- 表示进度条 -->
		<div class="layui-progress" lay-showPercent="true" lay-filter="myProgress">
		<div class="layui-progress-bar" lay-percent="0%" id="myProgressBar"></div>
		</div>
		<button id="btn1">开始涨涨涨</button>
		<!-- 引入layui中JS -->
		<script type="text/javascript" src="layui/layui.js"></script>
		<script type="text/javascript">
		
		//初始化layui模块
		layui.use(['element','jquery'],function(){
			var element = layui.element;
			var $ = layui.jquery;
			
			//点击按钮后 让进度条进度增涨
			$("#btn1").click(function(){
			var m = 10;
			window.setInterval(function(){
			var v = m+"%";
			m = m+10;
			if(m > 100){
			m = 100;
			}
			
			//获取进度条的值
			element.progress('myProgress', v);
			}, 1000);
			});
		});
		</script>
	</body>
</html>

9.面板

在layui中,面板是指:一个独立的容器,装元素,而折叠面板则能有效地节省页面的可视面积.

1)普通面板(class=“layui-card” )

  • class=“layui-card-header” 面板的头部信息

  • class=“layui-card-body” 面板内容


2)折叠面板(class=“layui-collapse”)

  • class=“layui-colla-item” : 折叠面板中的项

  • class=“layui-colla-title” : 折叠面板中的项中的标题

  • class=“layui-colla-content” : 折叠面板项中的内容

  • class=“layui-show” : 折叠面板中 展开的项


3)属性
在这里插入图片描述

4)事件

在这里插入图片描述

5)示例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
		<!-- 引入layui的css样式 -->
		<link rel="stylesheet" href="layui/css/layui.css" />
	</head>
	<body style="padding-left: 100px">
		<h1>普通面板</h1>
		<div class="layui-card">
		<div class="layui-card-header">面板标题</div>
		<div class="layui-card-body">
		面板内容
		</div>
	</div>
	
		<h1>折叠面板</h1>
		<div class="layui-collapse">
		<div class="layui-colla-item">
			<h2 class="layui-colla-title">杜甫</h2>
			<div class="layui-colla-content layui-show">内容区域</div>
		</div>
		<div class="layui-colla-item">
			<h2 class="layui-colla-title">李清照</h2>
			<div class="layui-colla-content ">内容区域</div>
		</div>
		<div class="layui-colla-item">
			<h2 class="layui-colla-title">鲁迅</h2>
			<div class="layui-colla-content ">内容区域</div>
			</div>
		</div>
		
		<h1>手风琴面板---只能显示一个</h1>
		<div class="layui-collapse" lay-accordion lay-filter="myPanel">
		<div class="layui-colla-item">
			<h2 class="layui-colla-title">杜甫</h2>
			<div class="layui-colla-content layui-show">内容区域</div>
		</div>
		<div class="layui-colla-item">
			<h2 class="layui-colla-title">李清照</h2>
			<div class="layui-colla-content layui-show">内容区域</div>
		</div>
		<div class="layui-colla-item">
			<h2 class="layui-colla-title">鲁迅</h2>
			<div class="layui-colla-content layui-show">内容区域</div>
		</div>
	</div>
	
	<!-- 引入layui中JS -->
	<script type="text/javascript" src="layui/layui.js"></script>
	<script type="text/javascript">
	
	//初始化layui模块
	layui.use(['element','jquery'],function(){
		var element = layui.element;
		var $ = layui.jquery;
		//监听面板的展开或者收缩
		element.on('collapse(myPanel)', function(data){
		//console.log(data);
		console.log(data.show); //得到当前面板的展开状态,true或者false
		console.log(data.title); //得到当前点击面板的标题区域DOM对象
		console.log(data.content); //得到当前点击面板的内容区域DOM对象
		});
	});
	</script>
	</body>
</html>

10.时间线

在layui中,使用class="layui-timeline"表示时间线.

  • class=“layui-timeline-item” 表示实现线中的项

  • class="layui-timeline-content 表示时间线的内容

  • class=“layui-timeline-title” 表示内容的标题

使用<p>标签表示具体的内容

1)示例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
		<!-- 引入layui的css样式 -->
		<link rel="stylesheet" href="layui/css/layui.css" />
	</head>
	
	<body style="padding-left: 100px">
	<ul class="layui-timeline">
		<li class="layui-timeline-item">
		<i class="layui-icon layui-timeline-axis">&#xe756;</i>
		<div class="layui-timeline-content layui-text">
		<h3 class="layui-timeline-title">8月18日</h3>
		<p>
		layui 2.0 的一切准备工作似乎都已到位。发布之弦,一触即发。
		<br>不枉近百个日日夜夜与之为伴。因小而大,因弱而强。
		<br>无论它能走多远,抑或如何支撑?至少我曾倾注全心,无怨无悔 <i class="layuiicon">! </i>
		</p>
		</div>
		</li>
		<li class="layui-timeline-item">
		<i class="layui-icon layui-timeline-axis">&#xe756;</i>
		<div class="layui-timeline-content layui-text">
		<h3 class="layui-timeline-title">8月16日</h3>
		<p>杜甫的思想核心是儒家的仁政思想,他有“<em>致君尧舜上,再使风俗淳</em>”的宏伟抱负。个
		人最爱的名篇有:</p>
	<ul>
		<li>《登高》</li>
		<li>《茅屋为秋风所破歌》</li>
	</ul>
	</div>
	</li>
	<li class="layui-timeline-item">
	<i class="layui-icon layui-timeline-axis">&#xe756;</i>
	<div class="layui-timeline-content layui-text">
	<h3 class="layui-timeline-title">8月15日</h3>
	<p>
	中国人民抗日战争胜利72周年
	<br>常常在想,尽管对这个国家有这样那样的抱怨,但我们的确生在了最好的时代
	<br>铭记、感恩
	<br>所有为中华民族浴血奋战的英雄将士
	<br>永垂不朽
	</p>
	</div>
	</li>
	<li class="layui-timeline-item">
	<i class="layui-icon layui-timeline-axis" style="color:red">&#xe756;</i>
	<div class="layui-timeline-content layui-text">
	<div class="layui-timeline-title">过去</div>
	</div>
	</li>
	</ul>
	<!-- 引入layui中JS -->
	<script type="text/javascript" src="layui/layui.js"></script>
	<script type="text/javascript">
	//初始化layui模块
	layui.use(['element','jquery'],function(){
	var element = layui.element;
	var $ = layui.jquery;
	});
	</script>
	</body>
</html>

猜你喜欢

转载自blog.csdn.net/Makasa/article/details/104977815