如何在onmouseover上显示一组隐藏的div?
例如:
<div id="div1">Div 1 Content</div>
<div id="div2">Div 2 Content</div>
<div id="div3">Div 3 Content</div>
所有div都需要在onmouseover事件中显示。
答案 0 :(得分:48)
如果div被隐藏,它们将永远不会触发mouseover
事件。
你必须听一些其他隐藏元素的事件。
您可以考虑将隐藏的div包装到仍然可见的容器div中,然后对这些容器的mouseover
事件进行操作。
<div style="width: 80px; height: 20px; background-color: red;"
onmouseover="document.getElementById('div1').style.display = 'block';">
<div id="div1" style="display: none;">Text</div>
</div>
如果你想让鼠标离开容器div时div消失,你也可以监听mouseout
事件:
onmouseout="document.getElementById('div1').style.display = 'none';"
答案 1 :(得分:12)
您可以将隐藏的div包装在另一个div中,该div将使用JavaScript中的onMouseOver和onMouseOut事件处理程序切换可见性:
<style type="text/css">
#div1, #div2, #div3 {
visibility: hidden;
}
</style>
<script>
function show(id) {
document.getElementById(id).style.visibility = "visible";
}
function hide(id) {
document.getElementById(id).style.visibility = "hidden";
}
</script>
<div onMouseOver="show('div1')" onMouseOut="hide('div1')">
<div id="div1">Div 1 Content</div>
</div>
<div onMouseOver="show('div2')" onMouseOut="hide('div2')">
<div id="div2">Div 2 Content</div>
</div>
<div onMouseOver="show('div3')" onMouseOut="hide('div3')">
<div id="div3">Div 3 Content</div>
</div>
答案 2 :(得分:8)
有一种非常简单的方法可以用CSS方式完成此任务。
将不透明度应用于0,从而使其不可见,但它仍会对JavaScript事件和CSS选择器做出反应。 在悬停选择器中,通过更改不透明度值使其可见。
#mouse_over {
opacity: 0;
}
#mouse_over:hover {
opacity: 1;
}
<div style='border: 5px solid black; width: 120px; font-family: sans-serif'>
<div style='height: 20px; width: 120px; background-color: cyan;' id='mouse_over'>Now you see me</div>
</div>
答案 3 :(得分:3)
将鼠标移到容器上并将鼠标悬停在div上我主要用于jQuery DropDown菜单:
复制整个文档并创建一个.html文件,你可以自己弄清楚!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>The Divs Case</title>
<style type="text/css">
* {margin:0px auto;
padding:0px;}
.container {width:800px;
height:600px;
background:#FFC;
border:solid #F3F3F3 1px;}
.div01 {float:right;
background:#000;
height:200px;
width:200px;
display:none;}
.div02 {float:right;
background:#FF0;
height:150px;
width:150px;
display:none;}
.div03 {float:right;
background:#FFF;
height:100px;
width:100px;
display:none;}
div.container:hover div.div01 {display:block;}
div.container div.div01:hover div.div02 {display:block;}
div.container div.div01 div.div02:hover div.div03 {display:block;}
</style>
</head>
<body>
<div class="container">
<div class="div01">
<div class="div02">
<div class="div03">
</div>
</div>
</div>
</div>
</body>
</html>
答案 4 :(得分:2)
选项1 每个div都是专门标识的,因此页面上的任何其他div(没有特定ID)都不会遵循:hover伪类。
<style type="text/css">
#div1, #div2, #div3{
display:none;
}
#div1:hover, #div2:hover, #div3:hover{
display:block;
}
</style>
选项2 页面上的所有div(无论ID如何)都具有悬停效果。
<style type="text/css">
div{
display:none;
}
div:hover{
display:block;
}
</style>