layui导航栏怎么实现类似苹果系统dock栏的鼠标滑动放大

梦浩同学_2890

梦浩同学_2890

2026-10-13

291人浏览

原创

layui 本身不提供 dock 栏式导航,但可通过 css + javascript 实现 macos 风格悬停放大、居中高亮与弹性动画效果,包括基础缩放、鼠标跟随动态缩放及兼容优化方案。

layui导航栏怎么实现类似苹果系统dock栏的鼠标滑动放大

layui 本身不提供 Dock 栏式导航(悬停放大 + 底部居中弹性动画),但可以基于其导航结构,用 CSS + 少量 JavaScript 实现类似苹果 macOS Dock 的鼠标滑动放大效果:图标随鼠标靠近逐渐放大、居中高亮、有平滑过渡。

1. 基础导航结构(使用 layui.nav)

先按 layui 规范写一个横向导航栏,每个菜单项用 li 包裹图标和文字,确保可独立 hover:

<div class="layui-nav">
  <ul class="layui-nav-item-list">
<li class="dock-item">
<i class="layui-icon"></i><span>首页</span>
</li>
    <li class="dock-item">
<i class="layui-icon"></i><span>文档</span>
</li>
    <li class="dock-item">
<i class="layui-icon"></i><span>组件</span>
</li>
    <li class="dock-item">
<i class="layui-icon"></i><span>社区</span>
</li>
  </ul>
</div>

2. CSS 实现弹性放大与居中聚焦

关键点:用 transform: scale() 控制缩放,配合 transition 实现缓动;用 transform: translateX() 微调位置让放大项“浮起居中”,避免挤压相邻项。推荐以下样式:

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

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

下载
.layui-nav-item-list {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  height: 60px;
  padding: 0 20px;
}
<p>.dock-item {
position: relative;
margin: 0 8px;
text-align: center;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
/<em> 初始缩小一点,增强放大对比 </em>/
transform: scale(0.9);
z-index: 1;
}</p><p>.dock-item:hover {
transform: scale(1.3) translateY(-5px);
z-index: 10;
}</p><p>.dock-item i {
font-size: 24px;
display: block;
margin: 0 auto 4px;
transition: inherit;
}</p><p>.dock-item span {
font-size: 12px;
display: block;
color: #666;
transition: inherit;
}</p><p>.dock-item:hover span {
color: #009688;
}</p>

3. 进阶:鼠标跟随式动态放大(可选)

若想实现更接近 macOS Dock 的“鼠标越靠近图标,放大越明显”,需监听 mousemove 并计算距离。只需给导航容器加 JS:

<script>
layui.use([], function(){
  const $nav = $('.layui-nav-item-list');
  const $items = $('.dock-item');
<p>$nav.on('mousemove', function(e){
const rect = this.getBoundingClientRect();
const centerX = rect.left + rect.width / 2;
const x = e.clientX - centerX; // 相对中心的横向偏移<pre class='brush:php;toolbar:false;'>$items.each(function(i, el){
  const offset = Math.abs(x - (i - ($items.length-1)/2) * 80); // 粗略估算各图标中心横坐标
  const scale = Math.max(0.85, 1.4 - offset * 0.01);
  $(el).css({
    'transform': `scale(${scale}) translateY(${Math.max(-8, -offset * 0.05)}px)`,
    'z-index': Math.floor(10 - offset * 0.1)
  });
});</script>

});

// 移出时恢复默认 $nav.on('mouseleave', function(){ $items.css({ 'transform': 'scale(0.9)', 'z-index': 1 }); }); });

⚠️ 注意:该方案为轻量模拟,真实 Dock 使用贝塞尔曲线+物理惯性,生产环境建议用 jquery-dock 或封装成 layui 模块。

4. 兼容与优化建议

  • 确保父容器设 overflow: hidden 防止放大时溢出遮挡
  • 在 body 或 .layui-layout-body 加 font-smoothing: antialiased 提升图标清晰度
  • 移动端建议禁用该效果(加媒体查询或 UA 判断),避免误触
  • 图标推荐用 SVG 或 layui-icon 内置字体,避免 raster 图片模糊

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

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

相关专题

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

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

2023.08.11

2423

5

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

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

2023.10.09

5223

6

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

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

2024.03.19

6270

13

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

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

2024.03.22

5838

10

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

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

2024.05.22

823

5

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

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

2023.10.23

3991

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

6828

6

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

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

2025.12.30

794

19

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

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

2025.12.30

694

12

热门下载

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

精品课程

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

共87课时 | 12.8万人学习

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

共89课时 | 11万人学习

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

共5课时 | 1.6万人学习