You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress X主题+UberMenu菜单悬停页面变暗功能失效求助

解决X主题+UberMenu悬停菜单项时页面变暗的问题

看起来你之前踩了CSS的一个常见坑——CSS没有父选择器,也无法通过子元素的hover状态直接影响页面其他区域的样式,这就是为什么你之前的代码完全无效的原因。下面给你一套可靠的解决方案,分步骤来:

1. 准备深色覆盖层的CSS

首先在X主题的全局CSS里(路径:主题选项 > CSS,别放在Cornerstone可视化编辑器里,全局生效更稳定)添加以下代码:

/* 页面变暗的覆盖层样式 */
.page-darkened {
  position: relative;
}
.page-darkened::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.7); /* 调整透明度可以改变变暗程度 */
  z-index: 999; /* 确保覆盖层在页面内容上方,但低于UberMenu(菜单z-index通常是1000+) */
  pointer-events: none; /* 避免覆盖层阻止菜单的点击/悬停事件 */
}

2. 用JS监听菜单悬停事件

接下来在X主题的全局JS里(路径:主题选项 > JS)添加这段代码,用来监听目标菜单项的鼠标进入/离开事件,动态给页面添加/移除深色类:

// 获取目标菜单项和页面主容器
const targetMenuItem = document.getElementById('menu-item-443');
// X主题的页面主容器通常是.x-site,用开发者工具F12确认下你的页面容器类
const pageContainer = document.querySelector('.x-site');

// 确保元素存在再执行事件监听
if (targetMenuItem && pageContainer) {
  // 鼠标悬停时添加深色类
  targetMenuItem.addEventListener('mouseenter', () => {
    pageContainer.classList.add('page-darkened');
  });

  // 鼠标离开时移除深色类
  targetMenuItem.addEventListener('mouseleave', () => {
    pageContainer.classList.remove('page-darkened');
  });
}

关键注意事项

  • 确认元素选择器正确:用浏览器F12开发者工具检查你的目标菜单项ID是不是#menu-item-443,以及页面主容器的类是不是.x-site(有些X主题变体可能用.x-root)。
  • z-index调整:如果覆盖层挡住了UberMenu,把z-index:999调得比菜单的z-index小(可以用开发者工具查看菜单的z-index值)。
  • 代码位置:优先放在X主题的全局CSS/JS里,不要放在Cornerstone可视化编辑器的局部区域,避免加载顺序问题导致代码不生效。

内容的提问来源于stack exchange,提问作者pdas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:07:20