现在开裂一整天仍然无法找到解决这个问题的简单方法。
我有一个班级
.displaynone{
display:none;
}
我正在尝试
尚未完成第2步和第3步。
我知道你会要我嵌套元素,但我有理由不这样做。实际上两个div被一些“空间”分开,所以我自然可能需要一个setTimeout或其他与时序相关的函数,但我也不确定我是否在正确的轨道上。
如果有人可以为此提供帮助,那将是我的一天。
标记
<div class="ui basic vertical segment" id="header">
<div class="ui container">
<div class="ui text menu">
<a class="item">
Item
</a>
</div>
<div class="ui text menu displaynone" id="subheader">
<a class="right item" id="hoversubheader1">
subheadertitle1
</a>
<a class="item" id="hoversubheader2">
subheadertitle2
</a>
</div><!--end of subheadermenu-->
<div class="ui text menu displaynone" id="subheader1">
<a class="right item">
detail
</a>
<a class="item">
detail
</a>
</div><!--end of subheadermenu-->
<div class="ui text menu displaynone" id="subheader2">
<a class="right item">
detail
</a>
<a class="item">
detail
</a>
</div><!--end of subheadermenu-->
</div><!--end of container-->
</div><!--end of segment-->
JS
(function($) {
"use strict"; // Start of use strict
//header hover brings out subheader bar
$("#header").hover(
function () {
$("#subheader").removeClass("displaynone");
},
function () {
$("#subheader").addClass("displaynone");
}
);
//hovering on each subheadertitle should display each subheader1, subheader2 etc
$('#hoversubheader1,#subheader1').mouseenter(function(){
$('#subheader1').removeClass("displaynone");
}).mouseleave(function(){
$("#subheader1").addClass("displaynone");
});
$('#hoversubheader2,#subheader2').mouseenter(function(){
$('#subheader2').removeClass("displaynone");
}).mouseleave(function(){
$("#subheader2").addClass("displaynone");
});
}(jQuery)); // End of use strict
CSS
#header{
background-color: white;
opacity: 0.97;
position: fixed;
width: 100%;
z-index: 99;
padding:0;
padding-bottom:0;
-webkit-transition: all 250ms ease-in-out;
-moz-transition: all 250ms ease-in-out;
-o-transition: all 250ms ease-in-out;
transition: all 250ms ease-in-out;
}
#header > .ui.container > .ui.text.menu{
margin-bottom:0;
}
#subheader,
#subheader1,
#subheader2{
padding:0;
margin:0;
}
#subheader1,
#subheader2{
height:200px;
}
#subheader > .ui.text.menu,
#subheader1 > .ui.text.menu,
#subheader2 > .ui.text.menu{
margin:0;
}
#subheader.displaynone,
#subheader1.displaynone,
#subheader2.displaynone{
display:none;
}
答案 0 :(得分:1)
<!DOCTYPE html>
<html>
<head>
<style>
.general {
height: 100px;
width: 100px;
border: solid 1px black;
}
.divClass {
display: inline;
}
.divClassB {
display: none;
}
</style>
<script src="script.js"></script>
<script>
var flag = false;
function MouseOver(obj) {
if (obj.id == "DivA" || obj.id == "DivB") {
flag = true;
document.getElementById('DivB').style.display = 'inline';
}
showhide(flag);
}
function MouseOut(obj) {
if (obj.id == "DivA" || obj.id == "DivB")
flag = false;
setTimeout(function() {
showhide(flag);
}, 3000);
}
function showhide(flag) {
if (flag) {
document.getElementById('DivB').style.display = 'inline';
} else
document.getElementById('DivB').style.display = 'none'
}
</script>
</head>
<body>
<h1>Hello Plunker!</h1>
<div class="general divClass" id="DivA" onmouseout="MouseOut(this)" onmouseover="MouseOver(this)">
Div A
</div>
<div>
This is for space
</div>
<div id="DivB" class="general divClassB" onmouseout="MouseOut(this)" onmouseover="MouseOver(this)">
Div B
</div>
</body>
</html>