下划线需用独立元素(如span)置于导航容器内并绝对定位,通过JS监听mouseenter/mouseleave及touchstart/focus事件,结合getBoundingClientRect计算位置,配合transform和width的transition实现平滑跟随。导航栏下划线不跟鼠标,transform 用错位置了常见错误是给 a 标签直接加 hover 和 transition,结果下划线在每个链接里独立出现、无法平滑移动。真正要动的是那个"共享"的下划线元素(比如一个 span 或伪元素),它得脱离单个链接,放在导航容器里统一控制。实操建议:立即学习"前端免费学习笔记(深入)";用一个绝对定位的 span 作为下划线,初始 width: 0、left: 0监听每个 a 的 mouseenter,读取它的 offsetLeft 和 offsetWidth,再用 transform: translateX() + width 更新下划线位置尺寸必须给下划线元素加 transition: transform 0.3s ease, width 0.3s ease,只写 all 容易卡顿:hover 伪类没法跨元素联动,得靠 JS 监听CSS 的 :hover 只能影响自身或后代,不能让父容器里的另一个子元素(如下划线)响应某个 a 的悬停。想让下划线"追着鼠标跑",纯 CSS 没法做到动态定位------除非你放弃平滑过渡,改用每个 a 自带固定位置的伪元素下划线(那就不是"随鼠标移动"了)。实操建议:立即学习"前端免费学习笔记(深入)";把下划线 DOM 节点放在 nav 内部最末尾,和 a 同级用 addEventListener('mouseenter', ...) 绑定到每个 a,避免用 onmouseover(会冒泡触发多次)别忘了加 mouseleave 回退逻辑:比如移出导航时,下划线缓慢缩回中间或收起用 getBoundingClientRect() 比 offsetLeft 更可靠如果导航栏有 padding、flex 布局或 transform 缩放,offsetLeft 会算不准位置,导致下划线偏移。尤其在响应式页面里,这个坑几乎必踩。 Cleanup.pictures 智能移除图片中的物体、文本、污迹、人物或任何不想要的东西
相关推荐
for_ever_love__4 小时前
函数——参数、lambda、*args与作用域东莞市云毅网络有限公司4 小时前
企业资料时效性判定:Last-Modified、正文日期与版本字段三路交叉Query*4 小时前
深入浅出LangGraph【一】_基础篇XiaoMaqqqq4 小时前
市面上正规的IP驱动产业新场景新工具哪家强许彰午4 小时前
01-Oracle数据库简介与版本选择菜鸟~noob2335 小时前
【电子战】第三季预告—波武器与电子系统强力毁伤ShyanZh5 小时前
【Python3基础】19-Socket 与 TCP、UDP 编程惊讶的猫5 小时前
工具选对之后还不够:商城 Agent 的参数与权限治理天赐范式6 小时前
天赐范式第186天:让方差开始自洽——Bulmer效应的闭式验证泡茶喝茶写代码6 小时前
A股量化数据工程:从 REST 接口到策略信号(第 8 篇):成长能力因子:营收与利润增速