layui侧边栏怎么给每个菜单图标设置鼠标悬停晃动效果

胖伟酱_7168

胖伟酱_7168

2026-11-05

270人浏览

原创

使用CSS的transform+transition对.layui-nav-item > a > .layui-icon实现悬停微晃,仅作用于图标不干扰文字与折叠布局,收缩态下保持一致效果,推荐旋转2–3°加±2px位移,时长0.3s内。

layui侧边栏怎么给每个菜单图标设置鼠标悬停晃动效果

给 layui 侧边栏菜单图标添加鼠标悬停晃动效果,核心是用 CSS 的 transform + transition 实现轻微旋转或抖动,不依赖 JS,也不干扰 layui 的导航逻辑。关键在于精准选中图标元素,并避免影响文字、点击区域和折叠状态。

只对图标生效,不碰文字和容器

layui 菜单项结构通常是:

  • 菜单名
  • 。晃动效果必须只作用于 ,不能加在 a 或 li 上,否则会带动文字偏移、触发 layout 重排,甚至在收缩态下破坏居中布局。

    • 正确选择器:.layui-nav-item a .layui-icon 或更稳妥的 .layui-nav-item > a > .layui-icon
    • 避免写成 .layui-nav-item:hover .layui-icon —— 这会在整个菜单项悬停时触发,图标晃动范围过大,体验生硬
    • 收缩态(.layui-side-collapsed)下,图标已居中且无文字,此时晃动仍应保留,但需确保 transform 不受父级 text-align 干扰

    实现自然微晃:旋转 + 位移组合

    纯 shake 动画容易刺眼,推荐用 2–3° 内的轻微旋转配合 ±2px 水平位移,持续时间控制在 0.3s 内,符合人眼舒适区间。

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

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

    下载
    • 基础 CSS 示例(放入自定义样式文件,不要内联):
    /* 悬停时图标轻微右旋+右移 */
    .layui-nav-item > a > .layui-icon:hover {
      transform: rotate(2deg) translateX(2px);
      transition: transform .3s ease-out;
    }
    /* 收缩态下也生效,保持一致性 */
    .layui-side-collapsed .layui-nav-item > a > .layui-icon:hover {
      transform: rotate(1.5deg) translateX(1px);
    }
    • 若想更灵动,可加 transform-origin: center 确保绕中心旋转,避免边缘跳变
    • 不建议使用 @keyframes shake 自定义动画——层级高、易冲突,且在子菜单展开/折叠时可能被 element 模块重置

    避开 layui 渲染干扰

    layui 调用 element.render('nav') 会重建 DOM 属性,但不会清除已绑定的 :hover 样式。因此只要 CSS 选择器稳定、不依赖动态 class,晃动效果就不会丢失。

    • 切勿在 element.on('nav') 回调里用 JS 添加 style.transform —— 这会覆盖 CSS transition,导致动画卡顿或失效
    • 不要给图标加 id 或额外 class 再单独写 hover,增加维护成本且易与折叠逻辑冲突
    • 测试时注意:鼠标快速进出图标区域,CSS hover 天然支持防抖,无需 JS 节流

    移动端适配说明

    手机端无 hover,该效果自动失效,无需额外处理。如需触摸反馈,可改用 :active 状态做按压缩放(transform: scale(0.95)),但仅限真机测试,模拟器可能不触发。

    相关文章

    PHP速学视频免费教程(入门到精通)
    PHP速学视频免费教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

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

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

    2023.08.11

    2843

    5

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

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

    2023.10.09

    6183

    6

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

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

    2024.03.19

    7110

    13

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

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

    2024.03.22

    6918

    10

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

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

    2024.05.22

    983

    5

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

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

    2023.10.23

    4631

    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

    8208

    6

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

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

    2025.12.30

    854

    19

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

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

    2025.12.30

    734

    12

    热门下载

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

    精品课程

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

    共87课时 | 13.1万人学习

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

    共89课时 | 11.4万人学习

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

    共5课时 | 1.6万人学习