【发布时间】:2021-03-07 13:31:44
【问题描述】:
我有一个菜单点,在它下面有一个单独的 div / mega 菜单。我触发了通过 Javascript 显示的巨型菜单。当我将鼠标悬停在大型菜单上时,菜单中所需的跨度应该用另一种颜色突出显示,并且背景颜色也应该改变。您可以在代码中看到我如何尝试解决它(包括 cmets)。你能帮我么。我不知道为什么我不能通过 .getElementsByClassName 触发它!?
//Showing mega menu on hover over menu point
document.getElementById("menu-item-136").addEventListener("mouseover", mouseOver);
document.getElementById("menu-item-136").addEventListener("mouseout", mouseOut);
function mouseOver() {
document.getElementById("mega-menu").style.display = "block";
}
function mouseOut() {
document.getElementById("mega-menu").style.display = "none";
}
//Let mega menu stay visible when hovering over it
//Style menupoint when hovering over mega menu div (NOT WORKING)!
document.getElementById("mega-menu").addEventListener("mouseover", mouseOver);
document.getElementById("mega-menu").addEventListener("mouseout", mouseOut);
function mouseOver() {
document.getElementById("mega-menu").style.display = "block";
document.getElementsByClassName (".aux-menu-label").style.color = "yellow";
}
function mouseOut() {
document.getElementById("mega-menu").style.display = "none";
document.getElementsByClassName (".aux-menu-label").style.color = "";
}
.menu-item-136 {
background-color: grey;
height: 50px;
}
.menu-item-136:hover {
background-color:green;
}
.aux-menu-label {
color:blue;
}
.mega-menu-1 {
display: none;
background-color: green;
height: 200px;
}
<div>
<li id="menu-item-136" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-136 aux-menu-depth-0 aux-menu-root-2 aux-menu-item">
<a href="#" class="aux-item-content">
<span class="aux-menu-label"><i aria-hidden="true" class="services auxicon-list"></i> Leistungen</span>
<span class="aux-submenu-indicator"></span></a>
</div>
<div id="mega-menu" class="mega-menu-1">content</div>
感谢您的帮助!
【问题讨论】:
-
您的示例使用的是 getElementsByClassName,它指的是具有同一类的多个元素。但是,您的 HTML 仅显示一个类为
aux-menu-label的元素。你会在你的项目中有更多这样的东西吗? - 此外,您有一个li,它只是在没有父ul或ol的情况下漂浮。你应该把它清理一下。 -
您好,感谢您的回复。那么,这仅在我进入多个班级时才有效吗?我用鼠标悬停和“ElementsByClass”做了很多尝试,但没有任何效果。我希望这仅适用于这一个菜单点(Leistungen)。但是菜单中有更多的“辅助菜单标签”元素……尽管它们的父级具有唯一的 li id。在我看来,这似乎很容易。 “将鼠标悬停在该 div 上时更改此跨度的颜色”。嗯
-
在下面查看我的答案,您的代码还有其他问题,但我只是为您的
getElementsByClassName问题提供了答案,并在您的 HTML 中添加了其他标签以使代码正常工作。如果您包含更多的 HTML,那会有所帮助。
标签: javascript colors highlight megamenu