<button class="nav-toggle" aria-expanded="false" aria-controls="site-nav"> <span class="sr-only">菜单</span> </button>
手机上点右上角汉堡图标,菜单没展开,页面直接跳到首页。按钮位置和 logo 链接重叠,点击区域 48×44,两块完全盖住。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:汉堡按钮是 button,外面套了 a 标签指向首页,事件冒泡到链接上就触发跳转。绝对定位后两块区域重叠,最上层恰好是链接。
「汉堡按钮误触」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。
验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
处理上按这个顺序:把按钮移出链接 不要嵌套在 a 里面;点击处理里 preventDefault 并 stopPropagation;用 pointer-events 控制重叠层 只让按钮接收点击。
确认没问题再收工,点汉堡只展开菜单不跳转,点 logo 才回首页。
