layui后台布局怎么适配手机端隐藏左侧菜单点击遮罩关闭

酷伟姑娘_4083

酷伟姑娘_4083

2026-11-14

187人浏览

原创

Layui手机端需手动绑定遮罩点击事件关闭左侧菜单:监听.layui-layer-shade点击,移除.layui-side的layui-show类并删除遮罩;同时监听窗口缩放,在≤768px时添加layui-side-spread类并重渲染导航。

layui后台布局怎么适配手机端隐藏左侧菜单点击遮罩关闭

在 Layui 后台布局中,适配手机端并实现「点击遮罩关闭左侧菜单」,核心不是靠遮罩本身响应点击,而是利用 Layui 的响应式机制 + 原生交互逻辑完成。Layui 本身不提供“点击遮罩收起侧边栏”的内置行为,需手动绑定事件并配合 CSS 类控制显隐。

手机端自动隐藏左侧菜单

Layui 的 layui-layout-admin 在屏幕宽度 ≤ 768px 时会自动添加 layui-body-left 类,并将 .layui-side 设为 display: none(依赖媒体查询)。但这个隐藏是纯 CSS 行为,不触发 JS 状态管理——所以你无法直接监听“它被隐藏了”。

更可靠的做法是:主动监听窗口尺寸变化,在小屏下手动折叠侧边栏,并确保其 DOM 结构仍存在(避免影响后续展开):

  • 用 layui.use(['element', 'util']) 确保模块加载完成
  • 在 $(window).resize() 中判断 $(window).width()
  • 若满足条件,给 .layui-layout-admin 添加 layui-side-spread 类(Layui 内置类),再调用 element.render('nav') 同步状态
  • 注意:不要用 display: none 直接隐藏,否则菜单项 hover/click 区域失效

点击遮罩关闭左侧菜单(移动端关键交互)

所谓“遮罩”,其实是 Layui 在小屏模式下、侧边栏展开时自动生成的一层半透明覆盖层(.layui-layer-shade),但它默认不参与菜单控制。要让它点击关闭菜单,需手动绑定事件:

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载
  • 监听 .layui-layer-shade 的 click,执行 $('.layui-side').removeClass('layui-show'); 或切换 layui-side-spread 类
  • 同时移除遮罩自身:$('.layui-layer-shade').remove();,避免重复点击触发多次
  • 推荐搭配 localStorage 记录菜单当前是否展开,防止刷新后状态错乱
  • 注意:该遮罩只在小屏且侧边栏展开时存在,大屏下无此元素,无需额外判断

避免常见干扰问题

很多项目点击遮罩没反应或误关弹窗,往往是因为混淆了不同层级的遮罩:

  • .layui-layer-shade(弹层遮罩)和侧边栏遮罩是两套 DOM,不能共用 shadeClose 参数
  • 不要在 layer.open 配置里动 shadeClose 来控制菜单——它只影响弹窗
  • 检查是否有全局 document.click 监听器,误捕获了遮罩区域冒泡事件
  • iOS Safari 下,若遮罩父容器设了 pointer-events: none,会导致点击穿透,需移除或改用 auto

补充:让点击菜单项也自动收起(增强体验)

用户点完菜单项后,希望侧边栏自动收起(尤其在手机上),可结合 element.on('nav(sideMenu)', callback):

  • 确保你的菜单容器有 lay-filter="sideMenu"
  • 在回调中加逻辑:if ($(window).width()
  • 这样既保持路由跳转/内容加载,又完成菜单收起,无需额外按钮

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

3003

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

6563

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

7430

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

7318

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

1043

5

html5动画制作有哪些制作方法
html5动画制作有哪些制作方法

html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

2023.10.23

4871

6

HTML与HTML5的区别
HTML与HTML5的区别

HTML与HTML5的区别:1、html5支持矢量图形,html本身不支持;2、html5中可临时存储数据,html不行;3、html5新增了许多控件;4、html本身不支持音频和视频,html5支持;5、html无法处理不准确的语法,html5能够处理等等。想了解更多HTML与HTML5的相关内容,可以阅读本专题下面的文章。

2024.03.06

8728

6

html5从入门到精通汇总
html5从入门到精通汇总

想系统掌握HTML5开发?本合集精选全网优质学习资源,涵盖免费教程、实战项目、视频课程与权威电子书,从基础语法到高级特性(Canvas、本地存储、响应式布局等)一应俱全,适合零基础小白到进阶开发者,助你高效入门并精通HTML5前端开发。

2025.12.30

894

19

html5新老标签汇总
html5新老标签汇总

HTML5在2026年持续优化网页语义化与交互体验,不仅引入了如<header>、<nav>、<article>、<section>、<aside>、<footer>等结构化标签,还新增了<video>、<audio>、<canvas>、<figure>、<time>、<mark>等增强多媒体与

2025.12.30

754

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 13.2万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 11.5万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习