我知道这可能有一个简单的解决方案,但我是Jquery noob。请帮忙。 如何在鼠标悬停的其他DIV上显示DIV?JQuery在鼠标悬停的另一个DIV上显示DIV
例子,我有这样的:
<div class="box"> Info about a game </div>
我要 “覆盖” 在格 “盒子”
<div class="overlay"> Play </div>
我如何能做到这一点与jQuery另一个DIV?
对不起,提前谢谢!
我知道这可能有一个简单的解决方案,但我是Jquery noob。请帮忙。 如何在鼠标悬停的其他DIV上显示DIV?JQuery在鼠标悬停的另一个DIV上显示DIV
例子,我有这样的:
<div class="box"> Info about a game </div>
我要 “覆盖” 在格 “盒子”
<div class="overlay"> Play </div>
我如何能做到这一点与jQuery另一个DIV?
对不起,提前谢谢!
如果我理解正确,则只需在box
上悬停时显示overlay
。
你可以使用CSS伪:hover
:
<div class="box">
Info about a game
<div class="overlay"> Play </div>
</div>
div.box div.overlay
{
display:none;
}
div.box:hover div.overlay
{
display:block;
}
http://jsfiddle.net/Curt/BC4eY/
如果您希望使用的动画/ jQuery来显示/隐藏overlay
您可以使用以下方法:
$(function(){
$(".box").hover(function(){
$(this).find(".overlay").fadeIn();
}
,function(){
$(this).find(".overlay").fadeOut();
}
);
});
您可以使用另一个DIV元素,其类别为'about',它将位于您想要的位置。 并将有CSS样式: 不透明度:0;
在JS然后,你必须写小剧本,将在onload事件位于/就绪功能,类似的东西:
$(document).ready(function() {
$('div.box').hover(function() {
$(this).children('.overlay').fadeIn();
}, function() {
$(this).children('.overlay').fadeOut();
});
});
如果该元素将在顶部覆盖的东西,那么最好是使用CSS属性'display:none'来防止这个透明元素接管鼠标事件。
以下是使用原生JavaScript(不需要jQuery库)的方法。如果你不使用ES6你可以用普通的旧function expressions更换arrow functions:
var box = document.getElementById("box");
var overlay = document.getElementById("overlay");
var init =() => {
overlay.style.display = 'none'; //hide by default when page is shown
box.addEventListener('mouseover',() => {
overlay.style.display = 'inline';
});
box.addEventListener('mouseout',() => {
overlay.style.display = 'none';
});
};
init();
<div id="box"> Info about a game<br />
<div id="overlay">Play</div>
</div>
是的,你是正确的。但与所有浏览器兼容吗? – DavidF 2012-04-10 11:19:39
@Splugged它与大多数浏览器兼容http://www.quirksmode.org/css/contents.html – Curt 2012-04-10 11:28:19
@Splugged查看我的编辑。我也提供了一个动画jQuery版本。 – Curt 2012-04-10 11:31:07