You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
layui/docs/panel/index.md

289 lines
8.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: 面板 panel,card,collapse
toc: true
---
# 面板
> 面板是一个包含普通面板panel、卡片面板card、折叠面板collapse的集合
<h2 id="panel" lay-toc="{}" style="margin-bottom: 0;">常规面板</h2>
常规面板通常作为包裹其他元素的形式存在,如与基础菜单 `menu` 经常搭配使用。
<pre class="layui-code" lay-options="{preview: true, layout: ['preview', 'code'], tools: ['full']}">
<textarea>
<div class="layui-panel">
<div style="padding: 32px;">面板任意内容</div>
</div>
</textarea>
</pre>
<h2 id="card" lay-toc="{}">卡片面板</h2>
<pre class="layui-code" lay-options="{preview: true, layout: ['preview', 'code'], tools: ['full']}">
<textarea>
<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>
</textarea>
</pre>
<h2 id="collapse" lay-toc="{hot: true}">折叠面板</h2>
<pre class="layui-code" lay-options="{preview: true, layout: ['preview', 'code'], tools: ['full'], done: function(obj){
obj.render();
}}">
<textarea>
<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 -->
</textarea>
</pre>
<h3 id="accordion" lay-toc="{level: 2}">开启手风琴</h3>
在折叠面板容器上追加 `lay-accordion` 属性,开启手风琴效果,即点击展开当前面板的同时,折叠其他面板。
<pre class="layui-code" lay-options="{preview: true, layout: ['preview', 'code'], tools: ['full'], done: function(obj){
obj.render();
}}">
<textarea>
<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 -->
</textarea>
</pre>
<h3 id="collapse-tree" lay-toc="{level: 2}">折叠面板嵌套</h3>
折叠面板内部支持无限嵌套,即折叠面板中再放置无限层级的折叠面板,以实现树形折叠结构。如:
<pre class="layui-code" lay-options="{preview: true, codeStyle: 'height:535px;', layout: ['preview', 'code'], tools: ['full'], done: function(obj){
obj.render();
}}">
<textarea>
<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 -->
</textarea>
</pre>
<h3 id="collapse-render" lay-toc="{level: 2}">折叠面板渲染</h3>
`element.render('collapse', filter);`
- 参数 `'collapse'` : 渲染折叠面板的固定值
- 参数 `filter` : 对应折叠面板容器 `lay-filter` 的属性值
在元素加载完毕后,`element` 模块会自动对元素进行一次渲染。而当元素为动态插入时,需通过该方法完成初始化渲染。
<h3 id="on-collapse" lay-toc="{level: 2}">折叠面板事件</h3>
`element.on('collapse(filter)', callback)`
- 参数 `collapse(filter)` 是一个特定结构。
- `collapse` 为折叠面板点击事件固定值;
- `filter` 为导航容器属性 `lay-filter` 对应的值。
- 参数 `callback` 为事件执行时的回调函数,并返回一个 `object` 类型的参数。
<pre class="layui-code" lay-options="{preview: true, codeStyle: 'height:535px;', layout: ['code', 'preview'], tools: ['full'], done: function(obj){
obj.render();
}}">
<textarea>
<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>
</textarea>
</pre>