maxmin: false 是唯一生效配置,可彻底隐藏最小化和最大化按钮,对所有 type 均有效,且必须写在 layer.open 配置对象中,不可事后通过 API 修改。
maxmin: false 是唯一生效配置
不显示最小化和最大化按钮,只用把 maxmin 设为 false 即可。这是 layer 的内置开关,没有其他隐藏参数或 css 伪装方案能替代它。
常见错误是误以为设了 type: 0 或 type: 3 就自动没按钮——其实只要 maxmin: true,部分类型(如 type: 1)仍会强行渲染按钮;反过来,maxmin: false 对所有 type 都有效,包括 type: 1、type: 2。
-
maxmin: false必须写在layer.open({})的配置对象里,不能事后调用 API 去隐藏 - 如果改完代码按钮还在,大概率是浏览器缓存了旧版
layer.js或layer.css,用Ctrl+F5强制刷新 - 热部署环境尤其容易卡住样式,别只点浏览器刷新图标
为什么 maxmin: true 有时也不显示按钮
按钮是否真出现,还取决于 type 类型:
- 仅
type: 1(页面层)和type: 2(iframe 层)支持maxmin按钮;设了也白搭的类型有:type: 0(信息框)、type: 3(加载层)、type: 4(tips 层) - 即使
type: 1,若内容区域area高度设为'auto',最小化/最大化后可能高度塌陷为 0,看起来像“按钮失效”,其实是 DOM 渲染异常 - IE11 及以下浏览器压根不触发
min回调,但按钮图标的显示不受影响——只是最小化逻辑不工作
想只留一个按钮?得手动删 DOM
layer 没提供 maxonly 或 minonly 这类单独开关。要只保留最大化、去掉最小化,必须在弹层打开后移除对应元素:
- 在
success回调里执行:layero.find('.layui-layer-min').remove() - 或者更稳妥地等 DOM 稳定后操作:
setTimeout(() => layero.find('.layui-layer-min').remove(), 10) - 注意:这个操作会影响所有后续通过该实例打开的子层(比如 iframe 里的 layer 调用),不是完全隔离的
高度为 auto 时的最大化/最小化风险
设 area: ['600px', 'auto'] 再启用 maxmin: true,是最容易翻车的组合。最小化后再最大化,内容区高度大概率变成 0px,只剩标题栏可见。
根本原因是 layer 在最小化时记录的是像素值,恢复时直接套用,没做 'auto' 特殊处理。临时解法是在 success 里重置高度:
success: function(layero){
layero.find('.layui-layer-content').css('height', 'auto');
}
但更稳的做法是:要么固定高度,要么换 type: 2(iframe 层),它天然隔离尺寸状态。











