Skip to content

Layer Options

S3Layeroptions 会传给 layer.open(options)。有默认插槽时,组件会强制使用 type: 1 并把 Vue 插槽内容渲染到 layer 内容区;没有默认插槽时,content 会原样交给 layui,适合 iframe、HTML 字符串、DOM 捕获层等原生用法。

常用配置

参数类型默认值说明
typenumber0层类型。0 信息框,1 页面层,2 iframe,3 加载层,4 tips。
titlestring | false | string[]'信息'标题。设为 false 可不显示标题栏。
contentstring | HTMLElement | JQuery | [string, 'yes' | 'no']-内容。组件有插槽时会自动生成内容容器。
areastring | string[]'auto'宽高。只设宽度可用 '500px',宽高都设可用 ['500px', '300px']
offsetstring | string[]'auto'坐标。支持像素、数组和快捷方位。
iconnumber-信息框图标。常用于 alertconfirmmsg
btnstring | string[] | false'确认'按钮。多个按钮依次对应 yesbtn2btn3
btnAlign'l' | 'c' | 'r''r'按钮左对齐、居中、右对齐。
closeBtnnumber | string | false1关闭按钮样式。设为 0false 可隐藏。
shadenumber | [number, string] | false0.3遮罩透明度和颜色。0/false 可不显示遮罩。
shadeClosebooleanfalse点击遮罩是否关闭。
timenumber0自动关闭毫秒数,0 表示不自动关闭。
animnumber0弹出动画。-1 表示无动画。
isOutAnimbooleantrue关闭时是否播放动画。
maxminbooleanfalse是否显示最大化/最小化按钮,对 type: 1/2 有效。
fixedbooleantrue是否固定在可视区域。
resizebooleantrue是否允许右下角拉伸。
scrollbarbooleantrue弹层打开时是否允许浏览器滚动。
movestring | boolean'.layui-layer-title'拖拽触发元素,设为 false 禁止拖拽。
moveOutbooleanfalse是否允许拖出窗口外。
zIndexnumber19891014层叠顺序起始值。

type

ts
{
  type: 0 // 信息框
  type: 1 // 页面层,适合 Vue 插槽
  type: 2 // iframe 层
  type: 3 // 加载层
  type: 4 // tips 层
}

组件有默认插槽时会自动使用 type: 1

vue
<S3Layer v-model="visible" :options="{ title: '页面层' }">
  <UserForm />
</S3Layer>

iframe 层不要传默认插槽:

vue
<S3Layer
  v-model="visible"
  :options="{ type: 2, content: 'https://layui.dev', area: ['80%', '80%'] }"
/>

area

ts
{ area: '500px' }
{ area: ['500px', '300px'] }
{ area: ['80%', '80%'] }

offset

说明
'auto'默认,垂直水平居中。
'100px'只定义 top,水平居中。
['100px', '50px']同时定义 top 和 left。
't'顶部。
'r'右侧。
'b'底部。
'l'左侧。
'lt'左上角。
'lb'左下角。
'rt'右上角。
'rb'右下角。

btn

ts
{
  btn: ['保存', '取消'],
  yes(index) {
    layer.close(index)
  },
  btn2(index) {
    return false
  }
}

yes 对应第一个按钮,btn2 从第二个按钮开始。回调返回 false 可阻止该按钮关闭弹层。

shade

ts
{ shade: 0.3 }
{ shade: [0.5, '#393D49'] }
{ shade: 0 }
{ shadeClose: true }

动画

说明
0平滑放大。
1从上掉落。
2从底部往上滑入。
3从左滑入。
4从左翻滚。
5渐显。
6抖动。
-1无动画。