layui/docs/panel/index.md
贤心 169f6ff9b8
feat: 重构 laytpl,增强对更多复杂模板结构的解析能力 (#2577)
* feat: 重构 laytpl,增强对更多复杂模板结构的解析能力

* Squashed commit of the following:

commit 6884f80378
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 14:45:58 2025 +0800

    release: v2.10.1

commit 8d643ad6dc
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 若干功能

commit 213fe5a209
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 14:15:39 2025 +0800

    docs: 添加 component 文档中实验性选项标记

commit 5521e48c05
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 14:10:46 2025 +0800

    fix: 修复 `body` 初始 `line-height` 无效的问题 (#2569)

commit 8c7cf0f606
Author: 青崖 <33601030+bxjt123@users.noreply.github.com>
Date:   Wed Mar 19 14:10:08 2025 +0800

    优化 checkbox 标签风格选中且禁用时的显示 (#2563)

commit 23b21254d4
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 14:04:44 2025 +0800

    docs: Squashed commit of the following:

    commit 95a0503f41
    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

    commit e6eb86bacb
    Author: morning-star <26325820+Sight-wcg@users.noreply.github.com>
    Date:   Wed Mar 19 14:02:05 2025 +0800

        docs(slider): 修正错别字 (#2578)

    commit 46f7a9783e
    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

    commit df1fc4f419
    Author: itletu <itletu@163.com>
    Date:   Mon Mar 10 13:54:06 2025 +0800

        docs: 更正 class 公共类文档错误 (#2544)

        | layui-border-box | 设置元素及其所有子元素均为 `box-sizing: border-box` 模型的容器 |

commit 87ba4c4394
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 13:41:33 2025 +0800

    docs(version): 优化 2.9.x 锚点

commit a0f533f0fd
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 13:37:29 2025 +0800

    docs: 修复 tabs 文档示例异常问题

commit 0f0584e2ed
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 13:35:00 2025 +0800

    docs: 修复 tabs 文档中自定义事件示例重新点击 Preview 失效的问题

commit 172957d243
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Wed Mar 19 13:29:09 2025 +0800

    docs: 优化文档中的用词细节 (#2571)

commit 094be4ddcc
Author: letianpailove <113023596+letianpailove@users.noreply.github.com>
Date:   Wed Mar 19 13:28:46 2025 +0800

    fix: 更正 class 公共类文档错误 (#2562)

commit 53ded26cb9
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Sun Mar 16 00:15:25 2025 +0800

    fix: 优化 tabs 重载时未按照传入的 closable 正确渲染可关闭状态

commit bd892bf87e
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Sun Mar 16 00:15:17 2025 +0800

    feat(component): 新增 cache 原型方法,用于元素缓存操作

commit 6ccc5a453d
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Sun Mar 16 00:14:18 2025 +0800

    fix(component): 优化元素 lay-options 属性上的配置在重载时的优先级

commit 79b0a56f50
Author: 贤心 <3277200+sentsim@users.noreply.github.com>
Date:   Sun Mar 16 00:13:55 2025 +0800

    fix(component): 修复 reload 时传入的选项未正确合并的问题

* refactor(laytpl): 优化代码细节

* docs: 重写 laytpl 模块文档
2025-03-27 23:55:04 +08:00

9.0 KiB
Raw Blame History

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>