gpt4 book ai didi

jquery - 如何仅在悬停菜单项或 div 时显示 div?

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:41 27 4
gpt4 key购买 nike

我的元素包含在一个无序列表中。我在这个列表之外隐藏了 div(使用 display:none;)。当您将鼠标悬停在列表项上时,我希望出现 div。如果您将鼠标从列表项移至其下方的 div,它也必须保持可见。

我愿意通过 CSS、JavaScript/jQuery 来实现这一点。另外,我的文档设置为 HTML5。

这就是我目前正在使用的。

<nav id="main-menu">
<ul>
<li><a class="first-link parent" href="">First Link</a></li>
<li><a class="second-link parent" href="">Second Link</a></li>
<li><a class="third-link parent" href="">Third Link</a></li>
<li><a class="fourth-link parent" href="">Fourth Link</a></li>
</ul>
</nav><!-- #main-menu !-->

在导航下方,我有将鼠标悬停在相应元素上时想要显示的内容。

        <div id="first-widget" class="widget-container">
<h2>Sub Title</h2>
<p>Lorem Ipsum
<a href="#">Read More</a></p>

</div><!-- .first-widget !-->


<div id="second-widget" class="widget-container">
<h2>Sub Title</h2>
<p>Lorem Ipsum
<a href="#">Read More</a></p>

</div><!-- .second-widget !-->

<div id="third-widget" class="widget-container">
<h2>Sub Title</h2>
<p>Lorem Ipsum
<a href="#">Read More</a></p>

</div><!-- .third-widget !-->



<div id="fourth-widget" class="widget-container">
<h2>Sub Title</h2>
<p>Lorem Ipsum
<a href="#">Read More</a></p>

</div><!-- .fourth-widget !-->

</aside><!-- .hidden !-->

我觉得应该有一个简单的解决方案,但到目前为止我的尝试都没有成功。最大的问题是 div 不仅在悬停菜单项时显示,而且当您从菜单移动到可见的 div 时也会显示。

如有任何建议,我们将不胜感激,感谢您花时间阅读到这里。

最佳答案

您可以将小部件包装在 div 中并为其附加 mouseleave 事件。此解决方案还使用 rel attibute 来存储小部件 id:DEMO

HTML

<div id="wrap">
<nav id="main-menu">
<ul>
<li><a class="first-link parent" rel="first-widget" href="">First Link</a></li>
<li><a class="second-link parent" rel="second-widget" href="">Second Link</a></li>
<li><a class="third-link parent" rel="third-widget" href="">Third Link</a></li>
<li><a class="fourth-link parent" rel="fourth-widget" href="">Fourth Link</a></li>
</ul>
</nav><!-- #main-menu !-->

<div id="first-widget" class="widget-container">
<h2>Sub Title 1</h2>
<p>Lorem Ipsum
<a href="#">Read More</a></p>
</div><!-- .first-widget !-->
...
</div>

JS

$('#main-menu a').mouseover(function() {
var $this = $(this);
var id = $this.attr('rel');
var $currentWidget = $('#' + id);
$currentWidget.show().siblings('.widget-container').hide();
});
$('#wrap').mouseleave(function() {
$('.widget-container').hide();
});

关于jquery - 如何仅在悬停菜单项或 div 时显示 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9245182/

27 4 0
文章推荐: css - 如何使我的
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com