mirror of
https://gitee.com/layui/layui.git
synced 2025-06-28 13:34:27 +08:00

* feat: 重构 laytpl,增强对更多复杂模板结构的解析能力 * Squashed commit of the following: commit6884f80378
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Wed Mar 19 14:45:58 2025 +0800 release: v2.10.1 commit8d643ad6dc
Merge:5521e48c
213fe5a2
Author: corededitor <107152508+corededitor@users.noreply.github.com> Date: Wed Mar 19 14:24:50 2025 +0800 feat: Merge pull request #2566 from layui/feat/component feat: 优化 component, tabs 若干功能 commit213fe5a209
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Wed Mar 19 14:15:39 2025 +0800 docs: 添加 component 文档中实验性选项标记 commit5521e48c05
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Wed Mar 19 14:10:46 2025 +0800 fix: 修复 `body` 初始 `line-height` 无效的问题 (#2569) commit8c7cf0f606
Author: 青崖 <33601030+bxjt123@users.noreply.github.com> Date: Wed Mar 19 14:10:08 2025 +0800 优化 checkbox 标签风格选中且禁用时的显示 (#2563) commit23b21254d4
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Wed Mar 19 14:04:44 2025 +0800 docs: Squashed commit of the following: commit95a0503f41
Merge:e6eb86ba
87ba4c43
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Wed Mar 19 14:03:13 2025 +0800 Merge branch 'main' into 2.x commite6eb86bacb
Author: morning-star <26325820+Sight-wcg@users.noreply.github.com> Date: Wed Mar 19 14:02:05 2025 +0800 docs(slider): 修正错别字 (#2578) commit46f7a9783e
Merge:df1fc4f4
c204590a
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Fri Mar 14 19:07:50 2025 +0800 Merge branch 'main' into 2.x commitdf1fc4f419
Author: itletu <itletu@163.com> Date: Mon Mar 10 13:54:06 2025 +0800 docs: 更正 class 公共类文档错误 (#2544) | layui-border-box | 设置元素及其所有子元素均为 `box-sizing: border-box` 模型的容器 | commit87ba4c4394
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Wed Mar 19 13:41:33 2025 +0800 docs(version): 优化 2.9.x 锚点 commita0f533f0fd
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Wed Mar 19 13:37:29 2025 +0800 docs: 修复 tabs 文档示例异常问题 commit0f0584e2ed
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Wed Mar 19 13:35:00 2025 +0800 docs: 修复 tabs 文档中自定义事件示例重新点击 Preview 失效的问题 commit172957d243
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Wed Mar 19 13:29:09 2025 +0800 docs: 优化文档中的用词细节 (#2571) commit094be4ddcc
Author: letianpailove <113023596+letianpailove@users.noreply.github.com> Date: Wed Mar 19 13:28:46 2025 +0800 fix: 更正 class 公共类文档错误 (#2562) commit53ded26cb9
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Sun Mar 16 00:15:25 2025 +0800 fix: 优化 tabs 重载时未按照传入的 closable 正确渲染可关闭状态 commitbd892bf87e
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Sun Mar 16 00:15:17 2025 +0800 feat(component): 新增 cache 原型方法,用于元素缓存操作 commit6ccc5a453d
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Sun Mar 16 00:14:18 2025 +0800 fix(component): 优化元素 lay-options 属性上的配置在重载时的优先级 commit79b0a56f50
Author: 贤心 <3277200+sentsim@users.noreply.github.com> Date: Sun Mar 16 00:13:55 2025 +0800 fix(component): 修复 reload 时传入的选项未正确合并的问题 * refactor(laytpl): 优化代码细节 * docs: 重写 laytpl 模块文档
9.0 KiB
9.0 KiB
title | toc |
---|---|
面板 panel,card,collapse | true |
面板
面板是一个包含普通面板(panel)、卡片面板(card)、折叠面板(collapse)的集合
常规面板
常规面板通常作为包裹其他元素的形式存在,如与基础菜单 menu
经常搭配使用。
<div class="layui-panel"> <div style="padding: 32px;">面板任意内容</div> </div>
卡片面板
<div class="layui-bg-gray" style="padding: 16px;"> <div class="layui-row layui-col-space15"> <div class="layui-col-md6"> <div class="layui-card"> <div class="layui-card-header">卡片面板</div> <div class="layui-card-body"> 卡片式面板面板通常用于非白色背景色的主体内<br> 从而映衬出边框投影 </div> </div> </div> <div class="layui-col-md6"> <div class="layui-card"> <div class="layui-card-header">卡片面板</div> <div class="layui-card-body"> 结合 layui 的栅格系统<br> 轻松实现响应式布局 </div> </div> </div> </div> </div>
折叠面板
<div class="layui-collapse"> <div class="layui-colla-item"> <div class="layui-colla-title">Collapse Title 1</div> <div class="layui-colla-content"> <p>Content 1</p> </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">Collapse Title 2</div> <div class="layui-colla-content"> <p>Content 2</p> </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">Collapse Title 3</div> <div class="layui-colla-content"> <ul> <li>Content list</li> <li>Content list</li> </ul> </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">折叠面板的标题</div> <div class="layui-colla-content"> <p>折叠面板的内容</p> </div> </div> </div> <!-- import layui -->
开启手风琴
在折叠面板容器上追加 lay-accordion
属性,开启手风琴效果,即点击展开当前面板的同时,折叠其他面板。
<div class="layui-collapse" lay-accordion> <div class="layui-colla-item"> <div class="layui-colla-title">layui 主要面向哪些用户群体?</div> <div class="layui-colla-content layui-show"> Layui 作为一个前端界面组件库,但面向的却主要是后端开发者。 <br>即无需涉足各类构建工具,只需面向浏览器本身,便可将页面所需呈现的元素与交互信手拈来。 </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">为什么我的眼里常含泪水?</div> <div class="layui-colla-content"> <p>因为我对这片土地爱的深沉。</p> </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">Why are my eyes always brimming with tears?</div> <div class="layui-colla-content"> <p>Because I love this land so deeply…</p> </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">一个折叠面板的标题?</div> <div class="layui-colla-content"> <p>一个折叠面板的内容。</p> </div> </div> </div> <!-- import layui -->
折叠面板嵌套
折叠面板内部支持无限嵌套,即折叠面板中再放置无限层级的折叠面板,以实现树形折叠结构。如:
<div class="layui-collapse" lay-accordion> <div class="layui-colla-item"> <div class="layui-colla-title">文学家</div> <div class="layui-colla-content layui-show"> <div class="layui-collapse" lay-accordion> <div class="layui-colla-item"> <div class="layui-colla-title">唐代</div> <div class="layui-colla-content layui-show"> <div class="layui-collapse" lay-accordion> <div class="layui-colla-item"> <div class="layui-colla-title">杜甫</div> <div class="layui-colla-content layui-show"> 唐代著名诗人,与李白齐名 </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">李白</div> <div class="layui-colla-content"> <p>唐代著名诗人,与杜甫齐名</p> </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">王勃</div> <div class="layui-colla-content"> <p>著有千古名篇《滕王阁序》</p> </div> </div> </div> </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">宋代</div> <div class="layui-colla-content"> <p>一个属于文人的时代</p> </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">现代</div> <div class="layui-colla-content"> <p>文学大师纷纷登场</p> </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">当代</div> <div class="layui-colla-content"> <p>文人、作家</p> </div> </div> </div> </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">科学家</div> <div class="layui-colla-content"> <p>伟大的科学家</p> </div> </div> <div class="layui-colla-item"> <div class="layui-colla-title">艺术家</div> <div class="layui-colla-content"> <p>浑身散发着艺术细胞</p> </div> </div> </div> <!-- import layui -->
折叠面板渲染
element.render('collapse', filter);
- 参数
'collapse'
: 渲染折叠面板的固定值 - 参数
filter
: 对应折叠面板容器lay-filter
的属性值或2.9.15+指定元素的 jQuery 对象
在元素加载完毕后,element
模块会自动对元素进行一次渲染。而当元素为动态插入时,需通过该方法完成初始化渲染。
折叠面板事件
element.on('collapse(filter)', callback)
- 参数
collapse(filter)
是一个特定结构。collapse
为折叠面板点击事件固定值;filter
为导航容器属性lay-filter
对应的值。
- 参数
callback
为事件执行时的回调函数,并返回一个object
类型的参数。
<div class="layui-collapse" lay-filter="filter-collapse">
<div class="layui-colla-item">
<div class="layui-colla-title">Collapse Title 1</div>
<div class="layui-colla-content">
<p>Content 1</p>
</div>
</div>
<div class="layui-colla-item">
<div class="layui-colla-title">Collapse Title 2</div>
<div class="layui-colla-content">
<p>Content 2</p>
</div>
</div>
<div class="layui-colla-item">
<div class="layui-colla-title">Collapse Title 3</div>
<div class="layui-colla-content">
<ul>
<li>Content list</li>
<li>Content list</li>
</ul>
</div>
</div>
<div class="layui-colla-item">
<div class="layui-colla-title">折叠面板的标题</div>
<div class="layui-colla-content">
<p>折叠面板的内容</p>
</div>
</div>
</div>
<!-- import layui -->
<script>
layui.use(function(){
var element = layui.element;
var layer = layui.layer;
// 折叠面板点击事件
element.on('collapse(filter-collapse)', function(data){
console.log(data.show); // 得到当前面板的展开状态,true or false
console.log(data.title); // 得到当前点击面板的标题区域对象
console.log(data.content); // 得到当前点击面板的内容区域对象
// 显示状态,仅用于演示
layer.msg('展开状态:'+ data.show);
});
});
</script>