layer.msg 默认显示时间为3秒(3000毫秒),可通过配置对象中的time参数覆盖,单位为毫秒;time:0表示不自动关闭,错误写法如timeout或放错参数位置会导致失效。

layer.msg 默认显示时间是多少
默认是 3 秒,也就是 3000 毫秒。这个值写死在 layui 的源码里,但你不需要改源码——layer.msg 支持传入 time 参数直接覆盖。
怎么用 time 参数控制显示时长
直接在第二个参数(配置对象)里加 time 字段即可,单位是毫秒:
layer.msg('操作成功', { time: 5000 }); // 显示 5 秒
常见用法包括:
-
time: 0表示不自动关闭,需手动点击或调用layer.close() -
time: 1000适合轻提示(比如“已复制”) - 超过
6000要谨慎——用户可能已经离开当前操作上下文
为什么改了 time 没生效
最常踩的坑是把 time 写错位置,比如:
- 误写成
timeout: 5000(layui 不认这个键名) - 把
time放在第一个参数里:layer.msg('xxx', 5000)(错误,第二个参数必须是对象) - 用了旧版 layui(
v2.5.0之前),某些低版本对time支持不稳定,建议升级到v2.9.0+
想全局修改默认 time 怎么办
不推荐直接改 layui 源码,更稳妥的方式是封装一层:
function myMsg(content, options = {}) {
return layer.msg(content, Object.assign({ time: 4000 }, options));
}
这样后续所有调用都走 myMsg(),默认就是 4 秒,又保留了单次覆盖的能力。
注意:如果项目里混用了 layer.alert、layer.tips,它们的自动关闭逻辑和 layer.msg 不同,time 参数不一定通用。


















