我开发了一个带有侧边栏标题的HTML文档,我想点击标题,它必须显示和隐藏标题下方的组件。
问题是它只适用于我的“LOGINS”标题。对于我的“什么是出勤”标题,它不显示和隐藏其下面的组件,它隐藏了“登录”组件。因此,根据我的说法,它对“什么是出勤率”标题没有生效。
我还想在每次打开文档时隐藏组件。
另一个问题。每次显示标题下方的组件时,如何使箭头旋转?
这是我到目前为止所做的:
HTML
<script>
function myFunction() {
var x = document.getElementById('myDIV');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
</script>
<body style=background-image:url('Images/blue.jpg')>
<section id="body" class="width" >
<aside id="sidebar" class="column-left">
<img class="thumbnail" src="Images/VsoftLogo.jpg" alt="thumbnail" />
<h2 onclick="myFunction()" class ="sidebar-heading"><i class="down" style-"top:-50px"></i> LOGINS</h2>
<div id="myDIV">
<nav id="mainnav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Solutions</a></li>
<li><a href="#">Contact1</a></li>
<li><a href="#">Contact1</a></li>
<li><a href="#">Contact1</a></li>
</ul>
</nav>
</div>
<h4 onclick="myFunction()" class ="sidebar-heading"><i class="down" style-"top:-50px"></i> what is attendance</h4>
<div id="myDIV">
<nav id="mainnav">
<ul>
<li><a href="#">Example</a></li>
<li><a href="#">Example2</a></li>
<li><a href="#">Example3</a></li>
<li><a href="#">Example4</a></li>
<li><a href="#">Example</a></li>
<li><a href="#">Contact1</a></li>
<hr>
</ul>
</nav>
</div>
CSS
.mystyle {
width: 100%;
padding: 25px;
background-color: coral;
color: white;
font-size: 25px;
}
i {
border: solid #ffb200;
border-width: 0 5px 5px 0;
display: inline-block;
padding: 5px;
}
.down {
color:#ffb200;
transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
}
答案 0 :(得分:1)
您在此处使用id
表示多个容器。 DOM中始终id
应该是唯一的。
此外,HTML中的语法错误带有style
标记。
您可以使用event
属性而不是在此处定义ID,而是相应地操作它以在页面加载时默认隐藏。
您可以将类mainnav
分配给您的show / hide容器以使其成为
检查fiddle。
参考代码:
function myFunction(event) {
var x = event.target.nextElementSibling,
y = event.target.firstChild;
if (x.style.display === 'none' || x.style.display === '') {
x.style.display = 'block';
y.classList.add("down");
y.classList.remove("right");
} else {
x.style.display = 'none';
y.classList.remove("down");
y.classList.add("right");
}
}
.sidebar-heading {
cursor: pointer;
}
.mystyle {
width: 100%;
padding: 25px;
background-color: coral;
color: white;
font-size: 25px;
}
i {
border: solid #ffb200;
border-width: 0 5px 5px 0;
display: inline-block;
padding: 5px;
}
.down {
color: #ffb200;
transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
}
.right {
color: #ffb200;
transform: rotate(-45deg);
-webkit-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
}
.mainnav {
display: none;
}
<body>
<section id="body" class="width">
<aside id="sidebar" class="column-left">
<h2 onclick="myFunction(event);" class="sidebar-heading"><i class="right" style="top:-50px"></i> LOGINS</h2>
<div class="mainnav">
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Solutions</a></li>
<li><a href="#">Contact1</a></li>
<li><a href="#">Contact1</a></li>
<li><a href="#">Contact1</a></li>
</ul>
</nav>
</div>
<h4 onclick="myFunction(event);" class="sidebar-heading"><i class="right" style="top:-50px"></i> what is attendance</h4>
<div class="mainnav">
<nav>
<ul>
<li><a href="#">Example</a></li>
<li><a href="#">Example2</a></li>
<li><a href="#">Example3</a></li>
<li><a href="#">Example4</a></li>
<li><a href="#">Example</a></li>
<li><a href="#">Contact1</a></li>
<hr>
</ul>
</nav>
</div>