You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AEM Grid组件的列中添加移动端显示与排序配置选项?

AEM Grid组件列添加移动端配置选项的实现方案

完全可以实现这个需求,具体可以通过以下步骤完成:

1. 扩展Grid列的配置对话框

在你的项目Grid组件的列对话框(路径一般为/apps/[你的项目名]/components/grid/column/_cq_dialog/.content.xml)中,新增两个配置字段:

  • 移动端隐藏:添加复选框类型字段,名称设为mobileHide,默认值false,让编辑者选择是否在移动端隐藏该列
  • 移动端排序序号:添加整数输入框类型字段,名称设为mobileOrder,默认值可设为该列的桌面端序号,让编辑者自定义移动端的列展示顺序

2. 调整Grid组件的渲染逻辑

在Grid组件的HTL脚本中对列数据预处理:

  • 先过滤掉mobileHide属性为true的列
  • 剩余列按照mobileOrder的数值从小到大排序
  • 将处理后的列列表渲染到页面中

示例HTL代码片段:

<div class="grid-container">
  <sly data-sly-list.column="${currentResource.children @ filter='!column.properties.mobileHide', sort='column.properties.mobileOrder'}">
    <div class="grid-column">
      <sly data-sly-resource="${column.path}"></sly>
    </div>
  </sly>
</div>

3. 配置响应式样式

通过CSS媒体查询实现布局切换:

  • 桌面端保持三列网格布局,使用AEM Grid默认样式或自定义Grid/Flex布局
  • 移动端(比如屏幕宽度≤768px时)将容器改为单列纵向布局,确保排序后的列按顺序垂直排列

示例CSS代码:

.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

@media (max-width: 768px) {
  .grid-container {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

这种方案既满足了编辑者可视化配置的需求,也能精准控制移动端的列展示逻辑,完全适配你描述的场景。

内容的提问来源于stack exchange,提问作者Rick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 23:17:31