UNPKG

antd-mini

Version:

antd-mini 是支付宝小程序 UI 组件库,遵循 Ant Design 规范。

194 lines (166 loc) 7.73 kB
--- nav: path: /components group: title: 导航 order: 6 toc: 'content' --- # Grid 宫格 宫格用于业务中多个子功能的导航,相比于列表的形式,具有更高的屏效。 ## 引入 在 `index.json` 中引入组件 ```json "usingComponents": { #if ALIPAY "ant-grid": "antd-mini/es/Grid/index" #endif #if WECHAT "ant-grid": "antd-mini/Grid/index" #endif } ``` ## 代码示例 ### 基本使用 ```xml <ant-grid items="{{items}}" iconSize="{{36}}" columns="{{3}}" /> ``` ```js Page({ data: { items: [ { title: 'title text', icon: 'https://gw.alipayobjects.com/mdn/rms_3a7189/afts/img/A*L8FjQ7lSdq4AAAAAAAAAAAAAARQnAQ', }, { title: 'title text', icon: 'https://gw.alipayobjects.com/mdn/rms_3a7189/afts/img/A*L8FjQ7lSdq4AAAAAAAAAAAAAARQnAQ', }, { title: 'title text', icon: 'https://gw.alipayobjects.com/mdn/rms_3a7189/afts/img/A*L8FjQ7lSdq4AAAAAAAAAAAAAARQnAQ', }, ], }, }); ``` ### 3 列-带描述 ```xml <ant-grid items="{{items3withDesc}}" iconSize="{{36}}" columns="{{3}}" /> ``` ```js Page({ data: { items: [ { title: 'title text', icon: 'https://gw.alipayobjects.com/mdn/rms_3a7189/afts/img/A*L8FjQ7lSdq4AAAAAAAAAAAAAARQnAQ', description: 'description', }, { title: 'title text', icon: 'https://gw.alipayobjects.com/mdn/rms_3a7189/afts/img/A*L8FjQ7lSdq4AAAAAAAAAAAAAARQnAQ', description: 'description', }, { title: 'title text', icon: 'https://gw.alipayobjects.com/mdn/rms_3a7189/afts/img/A*L8FjQ7lSdq4AAAAAAAAAAAAAARQnAQ', description: 'description', }, ], }, }); ``` ### 元素横向布局 ```xml <ant-grid items="{{items}}" columns="{{3}}" gridItemLayout="horizontal" /> ``` ### 自定义 ```xml #if ALIPAY <ant-grid items="{{items}}" columns="{{5}}"> <view slot="icon" slot-scope="props"> <ant-badge a:if="{{props.value.tag}}" offsetX="-10px" type="text" text="{{props.value.tag}}"> <image src="{{props.value.icon}}" style="width: 44px; height: 44px" /> </ant-badge> <image a:else src="{{props.value.icon}}" style="width: 44px; height: 44px" /> </view> <view slot="title" slot-scope="props"> 第{{props.index + 1}}项 </view> <view slot="description" slot-scope="props"> 描述{{props.index + 1}} </view> </ant-grid> #endif #if WECHAT 由于微信小程序平台的限制, Grid 在微信暂时不支持 Slot #endif ``` ### Demo 代码 <code src='../../demo/pages/Grid/index'></code> ## API | 属性 | 说明 | 类型 | 默认值 | | --------------------------- | ------------------------------------------------------ | ------------------------------------- | ---------- | | className | 类名 | string | - | | columns | 每行展示的元素个数,`default` 模式生效 | number | 5 | | description | 描述插槽,接收 value、index | slot | - | | gridItemLayout | item 布局,可选 `vertical`(垂直)`horizontal`(水平) | string | `vertical` | | icon | 图标插槽,接收 value、index | slot | - | | iconSize | 图标尺寸,单位 px | number | - | | iconStyle | 图标样式类型,可选 `normal` `circle` | string | `normal` | | items | 内容文字 | [GridItem](#griditem)[] | - | | mode | 样式类型,可选 `default`(平铺)`scroll`(滑动) | string | `default` | | paginationFillColor | 分页符背景色,`scroll` 模式生效 | string | - | | paginationFrontColor | 分页符颜色,`scroll` 模式生效 | string | - | | showDivider | 是否展示分割线 | boolean | - | | style | 样式 | string | - | | title | 标题插槽,接收 value、index | slot | - | | #if ALIPAY onTap | 点击每个元素触发 | (item: [GridItem](#griditem)) => void | | | #if ALIPAY onFirstAppear | 当前元素首次可见面积达到 50% 时触发 | (item: [GridItem](#griditem)) => void | | | #if WECHAT bindtap | 点击每个元素触发 | (item: [GridItem](#griditem)) => void | - | | #if WECHAT bindfirstappear | 当前元素首次可见面积达到 50% 时触发 | (item: [GridItem](#griditem)) => void | - | #### GridItem | 参数 | 说明 | 类型 | 默认值 | | ----------- | ----------------------------------------------------- | ------ | ------ | | description | 描述 | string | - | | icon | 图标,支持图片和 [Icon](./Icon) | string | - | | iconStyle | 图标样式类型,优先级高于 grid,可选 `normal` `circle` | string | - | | title | 标题 | string | - | ### 主题定制 #### 样式变量 组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。 | 变量名 | 默认值 | 深色模式默认值 | 备注 | | ---------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------ | | --ant-grid-title-color | <div style="width: 150px; height: 30px; background-color: #333333; color: #ffffff;">#333333</div> | <div style="width: 150px; height: 30px; background-color: #c5cad1; color: #ffffff;">#c5cad1</div> | 网格标题颜色 | | --ant-grid-description-color | <div style="width: 150px; height: 30px; background-color: #999999; color: #ffffff;">#999999</div> | <div style="width: 150px; height: 30px; background-color: #616161; color: #ffffff;">#616161</div> | 网格描述颜色 | | --ant-grid-border-color | <div style="width: 150px; height: 30px; background-color: #eeeeee; color: #333333;">#eeeeee</div> | <div style="width: 150px; height: 30px; background-color: #2b2b2b; color: #ffffff;">#2b2b2b</div> | 网格边框颜色 |