Jquery悬停-允许悬停在按钮悬停的另一个DIV上
Jquery Hover - allow hover on another DIV the appears on hover of a button
我有一个有4个按钮的主页。当鼠标悬停在按钮上时,按钮后面会出现一个菜单。当你将鼠标悬停在另一个按钮上时,一个不同颜色的菜单出现在它的位置。
目前,我可以让按钮显示菜单,但当我悬停在菜单上(并悬停在按钮上),我失去了菜单。
下面是我的简单代码:Jquery在top:
$(".mybutton").hover(
function () {
$(".mybox").fadeIn();
},
function () {
$(".mybox").fadeOut();
}
);
$(".mybutton2").hover(
function () {
$(".mybox2").fadeIn();
},
function () {
$(".mybox2").fadeOut();
}
);
我的HTML:
<div class="mybox">
<div style="position: absolute;">
<a href="#">Item 1</a>
<a href="#">Item 2</a>
</div>
</div>
<div class="buttons">
<div class="mybutton">
/* Button image here */
</div>
<div class="mybutton2">
/* Button 2 image here */
</div>
</div>
所以我需要一些方法来保持当它悬停在上方时淡出的框。我在想不做淡出的回调,并以某种方式只做淡出,如果他们淡出。mybox DIV或如果他们悬停在另一个按钮。但是我不太清楚该怎么做。
你需要在容器中包含菜单和按钮,并在容器上有一个悬停事件。这样,只要你把鼠标悬停在容器上,你的菜单就会显示出来。
这是你需要做的。像这样声明一个容器,菜单和按钮都在里面。
<div id='container'>
<div class="mybox box">
<div style="position: absolute;">
<a href="#">Item 1</a>
<a href="#">Item 2</a>
</div>
</div>
<div class="buttons">
<div class="mybutton">
/* Button image here */
</div>
</div>
</div>
这是你需要在jquery中做的。
$(document).ready(function() {
$("#container").hover(
function() {
console.log($(".mybox").fadeIn());
$(".mybox").fadeIn();
},
function() {
$(".mybox").fadeOut();
}
);
});
这里有一个工作的JSFIDDLE,有两个按钮
这是因为你不再悬停在按钮上,而是去到一个不同的元素"mybox",所以你可以重新安排html结构,让它工作,通过保持菜单在按钮类,像这样:
<div class="buttons">
<div class="mybutton">
/* Button image here */
<div class="mybox">
<div style="position: absolute;">
<a href="#">Item 1</a>
<a href="#">Item 2</a>
</div>
</div>
</div>
</div>
只要光标在,菜单就会保持活动
出于各种原因,我不建议将此作为UI设计模式(其中一个原因是实现它的复杂性);您可以考虑更改它,以便在用户单击时显示菜单。
说了这么多,这里有一个方法。删除现有的fadeOut()
调用并添加以下内容:
$("body").on("mousemove", function(e) {
var $hovered = $(e.target);
var $myButton = $(".myButton");
var $box = $(".myBox");
if ( $hovered.is( $myButton ) ) return;
if ( $hovered.is( $box ) ) return;
if ( $.contains( $box.get(0), $hovered ) ) return;
$box.fadeOut();
});
…button2也一样。基本原则是这样的——每当鼠标移动时,我们检查鼠标是否悬停在按钮上,或框上,或框中包含的元素上(使用$.contains()
)。
相关文章:
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 当我悬停按钮时,更改按钮的背景
- 如何在鼠标悬停按钮上显示或隐藏面板
- 只显示潜水时悬停按钮X时间-可以'我不能使它正常工作
- Javascript 鼠标悬停按钮
- React.js 中的悬停按钮
- 如何在画布上创建悬停按钮
- 从Div获取图像文件名,并将其复制到悬停按钮上的文本字段中
- 单击鼠标悬停按钮以显示描述框
- 在XHTML 1.0 Strict中使用Pinterest悬停按钮,但对某些图像禁用该按钮
- 如何在悬停按钮时通过文本切换图像,并延迟反向切换
- 如何正确设置单个鼠标悬停按钮的id
- 返回鼠标悬停按钮的标题
- 是否可以在框架中改变鼠标悬停按钮的颜色?
- 悬停按钮的问题
- CSS精灵-如何让鼠标悬停按钮处于按下状态
- 如何用javascript模拟css悬停按钮?(没有jquery)
- 为什么我的悬停按钮下拉菜单在我鼠标悬停时不保持打开状态
- HTML 悬停按钮列表单击事件子项
- ActionLink图像悬停按钮效果与鼠标事件