【发布时间】:2017-06-25 03:08:57
【问题描述】:
我创建了一个 JavaScript 下拉菜单,但是当鼠标在 Safari 和 Chrome 中快速悬停时,它会以一种故障的方式闪烁。在 Firefox 中这不是问题。
我看到有关此问题的帖子讨论了父/子问题或悬停问题,但我不确定它们是否适用。我是 JavaScript 新手,这是我编写的第一个代码,所以我并没有真正理解这些响应。
这是一个水平菜单,每个栏都有这样的 HTML...
<li>
<a href="#" id="dropMenu3" class="dropMenu" onclick="dropDown3()">Creations</a>
<div id="dropDiv3" class="dropDiv bar3" onmouseout="hideDiv3()">
<a href="#">Creations</a>
<a href="#">Cordie-bot</a>
<a href="#">Infinity Clock</a>
<a href="#">Steampunk Hat</a>
<a href="#">Birdfeeder</a>
</div>
</li>
还有像这样的 JavaScript...
function dropDown3() {
document.getElementById("dropDiv1").classList.remove("show");
document.getElementById("dropDiv2").classList.remove("show");
document.getElementById("dropDiv3").classList.toggle("show");
document.getElementById("dropDiv4").classList.remove("show");
document.getElementById("dropDiv5").classList.remove("show");
}
function hideDiv3(){
document.getElementById("dropDiv3").classList.toggle("show");
}
每个 div 在显示时都位于其菜单栏的顶部,因此鼠标悬停也可以在顶部工作,但在以这种方式设置之前我也遇到了闪烁的问题。
我确信有更好的编码方法,但我不认为它有什么严重错误。除了闪烁之外,它工作得很好。所以请让我知道是否有某种方法可以解决它。请保持简单。我是新手。另外,我不使用 jQuery。
【问题讨论】:
-
您没有为此使用 CSS 有什么原因吗?
-
我使用了大量的 CSS 来设置这个网站的样式。我没有将它包含在帖子中,因为我认为它不相关。你是说有一种方法可以只用 CSS 制作下拉菜单吗?如果是这样,出于某种原因,这是否更可取?我很想知道如何做到这一点,但我确实想使用 JavaScript 来解决这个问题。我目前的目标是学习 JavaScript。
标签: javascript drop-down-menu toggle mouseover