gpt4 book ai didi

JavaScript 菜单 onmouseout 问题

转载 作者:行者123 更新时间:2023-11-28 09:24:33 25 4
gpt4 key购买 nike

我正在尝试创建一个 JavaScript(最好不是 jQuery)网站菜单,当每个菜单项悬停在其上方时,该菜单会下拉子链接的下拉菜单。我几乎让它完全发挥作用,但我遇到了一些困难,无法在网上找到解决方案。

在菜单按钮上,我有一个 onmouseover 事件,用于显示子链接面板并为其设置动画。如果您将鼠标移出/移到另一个菜单按钮上,该面板将消失,如果您将鼠标悬停在另一个菜单按钮上,则会出现一个新面板。问题是,当您将鼠标从所需的菜单按钮移到相应的面板上时,它就会消失,显然是因为菜单按钮上有一个 onmouseout 事件来执行此操作!我需要按钮上的 onmouseout,但是当鼠标移到面板上时如何防止它触发隐藏功能?

我试图想出解决这个问题的方法,但到目前为止我还没有成功,因此我们将不胜感激任何帮助!

谢谢

安迪

<script type="text/javascript">

var anim = new Animator();

function Animator() {

this.slideDown = function (element, height) {

var e = document.getElementById(element);
var counter = 0;
e.style.display = 'block';

var interval = window.setInterval(function () {
counter += 2;
e.style.height = counter + 'px';

if (counter >= height) {
clearInterval(interval);
}
}, 1);

};

this.hideSlide = function (element) {
var e = document.getElementById(element);
e.style.display = 'none';
e.style.height = 0 + 'px';
}
}

</script>
</head>
<body>
<form id="form1" runat="server">
<div id="divMenuBar">
<div class="menuButton" onmouseover="anim.slideDown('divMenu1', 305);" onmouseout="anim.hideSlide('divMenu1');">Click Me</div>
<div id="divMenu1" class="slidingMenu menu1">
<ul>
<li>Option 1</li>
<li>Option 2</li>
<li>Option 3</li>
<li>Option 4</li>
<li>Option 5</li>
<li class="end">Option 6</li>
</ul>
</div>
<div class="menuButton" onmouseover="anim.slideDown('divMenu2', 305);" onmouseout="anim.hideSlide('divMenu2');">Click Me</div>
<div id="divMenu2" class="slidingMenu menu2">
<ul>
<li>Option 1</li>
<li>Option 2</li>
<li>Option 3</li>
<li>Option 4</li>
<li>Option 5</li>
<li class="end">Option 6</li>
</ul>
</div>
<div class="menuButton" onmouseover="anim.slideDown('divMenu3', 305);" onmouseout="anim.hideSlide('divMenu3');">Click Me</div>
<div id="divMenu3" class="slidingMenu menu3">
<ul>
<li>Option 1</li>
<li>Option 2</li>
<li>Option 3</li>
<li>Option 4</li>
<li>Option 5</li>
<li class="end">Option 6</li>
</ul>
</div>
<div class="menuButton" onmouseover="anim.slideDown('divMenu4', 305);" onmouseout="anim.hideSlide('divMenu4');">Click Me</div>
<div id="divMenu4" class="slidingMenu menu4">
<ul>
<li>Option 1</li>
<li>Option 2</li>
<li>Option 3</li>
<li>Option 4</li>
<li>Option 5</li>
<li class="end">Option 6</li>
</ul>
</div>
</div>
</form>

最佳答案

我确信您有不想使用 jQuery(或其他 UI 框架)的原因,所以我不会提出这个问题。但一般来说,您必须编写类似于这些框架执行菜单的代码。

您不需要像现在一样盲目地隐藏鼠标悬停时的元素,而是需要构建逻辑来查看鼠标现在位于什么位置,如果它位于子面板上,则需要保持面板可见性。如果您开始进入子菜单,这可能会变得相当棘手。

但是无论你怎么写,天下没有免费的午餐。您的按钮和菜单面板需要了解彼此以及它们之间的关系。您必须明确决定隐藏和显示什么以及何时隐藏和显示什么。

关于JavaScript 菜单 onmouseout 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14566772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com