大家晚上好
我尝试创建一个导航,其中主类别具有各种子类别。如果您将鼠标悬停在主类别上,就会出现子类别。
到目前为止,它可以工作,但是子类别列表之后不会消失,而是在悬停后仍然存在。
我尝试使用 MouseOut 创建一个函数(在下面的代码中,这被注释掉了),但是如果我移动鼠标,导航很快就会消失。
代码仅用于测试目的,因此JS不会存储在单独的文件中。
* {
padding: 0;
margin: 0;
}
#Hauptnavi {
background-color: gray
}
nav ul li {
list-style-type: none;
}
nav ul li a {
text-decoration: none;
}
#Unternavi {
opacity: 0;
visibility: none;
}
<body>
<nav role="Navigation">
<ul id="Hauptnavi">
<li><a href="#">Start</a></li>
<li id="Servicehover"><a href="#">Service</a></li>
<ul id="Unternavi">
<li><a href="#">Unterseite A</a></li>
<li><a href="#">Unterseite B</a></li>
<li><a href="#">Unterseite C</a></li>
</ul>
<li><a href="#">Contact</a></li>
</ul>
</nav>
<script>
document.getElementById("Servicehover").addEventListener("mouseover", MouseOver);
/* document.getElementById("Hauptnavi").addEventListener("mouseout", MouseOut); */
function MouseOver() {
document.getElementById("Unternavi").style.visibility = "visible";
document.getElementById("Unternavi").style.opacity = 1;
}
/*
function MouseOut() {
document.getElementById("Unternavi").style.visibility = "none";
document.getElementById("Unternavi").style.opacity = 0;
} */
</script>
</body>
</html>
实现这个案例的最佳方式是什么?我不需要现成的解决方案,只需要一些关于如何正确实施的建议。
非常感谢。
我尝试使用 MouseOut 创建一个函数(在下面的代码中,这被注释掉了),但是如果我移动鼠标,导航很快就会消失。
我也尝试使用点击事件,但它只适用于“document.getElementById(”Hauptnavi”)....如果我尝试访问id“Servicehover”它不起作用。
你可以试试这个代码
document.getElementById("Servicehover").addEventListener("mouseover", MouseOver);
document.getElementById("Servicehover").addEventListener("mouseout", MouseOut);
function MouseOver() {
document.getElementById("Unternavi").style.visibility = "visible";
document.getElementById("Unternavi").style.opacity = "1";
document.getElementById("Unternavi").style.height = "100%"
}
function MouseOut() {
document.getElementById("Unternavi").style.visibility = "none";
document.getElementById("Unternavi").style.opacity = 0;
document.getElementById("Unternavi").style.height = "0";
}
* {
padding: 0;
margin: 0;
}
#Hauptnavi {
background-color: gray
}
nav ul li {
list-style-type: none;
}
nav ul li a {
text-decoration: none;
}
#Unternavi {
height: 0;
opacity: 0;
visibility: none;
}
<nav role="Navigation">
<ul id="Hauptnavi">
<li><a href="#">Start</a></li>
<li id="Servicehover"><a href="#">Service</a></li>
<ul id="Unternavi">
<li><a href="#">Unterseite A</a></li>
<li><a href="#">Unterseite B</a></li>
<li><a href="#">Unterseite C</a></li>
</ul>
<li><a href="#">Contact</a></li>
</ul>
</nav>