寻找一个好的JavaScript,以帮助我隐藏/显示多个div与一个按钮点击而不是一个点击,所以我可以在博客中使用它.我一直在寻找一段时间的答案,并且无法找到一个使用JavaScript和/或CSS的好答案.我是一个新手所以请耐心等待.以下是我的代码,但我想简化它并使其工作,以便当我再次单击相应的按钮时它将关闭div.
CSS
<head>
<style>
#myDIV1 {
width: 150px;
height: 150px;
background-color: lightblue;
display: none;
}
#myDIV2 {
width: 150px;
height: 150px;
background-color: lightblue;
display: none;
}
#myDIV3 {
width: 150px;
height: 150px;
background-color: lightblue;
display: none;
}
#myDIV4 {
width: 150px;
height: 150px;
background-color: lightblue;
display: none;
}
</style>
</head>
Run Code Online (Sandbox Code Playgroud)
我知道有一种更简单的方法,但这是我能找到的唯一方法,它适用于我希望它在大多数情况下做的事情
HTML
<body>
<p>Click button to see div.</p>
<button onclick="myFunction1()">One</button>
<button onclick="myFunction2()">Two</button>
<button onclick="myFunction3()">Three</button>
<button onclick="myFunction4()">Four</button>
<div id="myDIV1">
This is the div1 element.
</div>
<div id="myDIV2">
This is the div2 element.
</div>
<div id="myDIV3">
This is the div3 element.
</div>
<div id="myDIV4">
This is the div4 element.
</div>
Run Code Online (Sandbox Code Playgroud)
使用Javascript
<script>
function myFunction1() {
document.getElementById("myDIV1").style.display = "block";
document.getElementById("myDIV2").style.display = "none";
document.getElementById("myDIV3").style.display = "none";
document.getElementById("myDIV4").style.display = "none";
}
function myFunction2() {
document.getElementById("myDIV1").style.display = "none";
document.getElementById("myDIV2").style.display = "block";
document.getElementById("myDIV3").style.display = "none";
document.getElementById("myDIV4").style.display = "none";
}
function myFunction3() {
document.getElementById("myDIV1").style.display = "none";
document.getElementById("myDIV2").style.display = "none";
document.getElementById("myDIV3").style.display = "block";
document.getElementById("myDIV4").style.display = "none";
}
function myFunction4() {
document.getElementById("myDIV1").style.display = "none";
document.getElementById("myDIV2").style.display = "none";
document.getElementById("myDIV3").style.display = "none";
document.getElementById("myDIV4").style.display = "block";
}
</script>
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激提前感谢.
我建议先将您的代码分开-然后将它更干净和可重用-如myStyle.css, myScript.js,index.html
将css和js文件添加到文件中,html例如-
<link rel="stylesheet" type="text/css" href="myStyle.css">
<script type="text/javascript" src="myScript.js"></script>
src->表示文件的源路径。在这里,我假设所有的css,js“ html”文件都位于同一位置。
var divs = ["Div1", "Div2", "Div3", "Div4"];
var visibleDivId = null;
function divVisibility(divId) {
if(visibleDivId === divId) {
visibleDivId = null;
} else {
visibleDivId = divId;
}
hideNonVisibleDivs();
}
function hideNonVisibleDivs() {
var i, divId, div;
for(i = 0; i < divs.length; i++) {
divId = divs[i];
div = document.getElementById(divId);
if(visibleDivId === divId) {
div.style.display = "block";
} else {
div.style.display = "none";
}
}
}Run Code Online (Sandbox Code Playgroud)
.buttons a {
font-size: 16px;
}
.buttons a:hover {
cursor:pointer;
font-size: 16px;
}Run Code Online (Sandbox Code Playgroud)
<div class="main_div">
<div class="buttons">
<a href="#" onclick="divVisibility('Div1');">Div1</a> |
<a href="#" onclick="divVisibility('Div2');">Div2</a> |
<a href="#" onclick="divVisibility('Div3');">Div3</a> |
<a href="#" onclick="divVisibility('Div4');">Div4</a>
</div>
<div class="inner_div">
<div id="Div1">I'm Div One</div>
<div id="Div2" style="display: none;">I'm Div Two</div>
<div id="Div3" style="display: none;">I'm Div Three</div>
<div id="Div4" style="display: none;">I'm Div Four</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
如果你想同时隐藏/显示所有div,那么你必须为所有div提供相同的类,例如:.toggle,然后你可以这样做:
function myFunction1(){
$(".toggle").slideToggle();
}
Run Code Online (Sandbox Code Playgroud)
如果你想一次隐藏/显示一个 div ,你可以使用 id 来做到这一点:
function myFunction1(){
$("#myDIV1").slideToggle();
}
Run Code Online (Sandbox Code Playgroud)
有不同的按钮:
function myFunction1(id){
$("#"+id).slideToggle();
}
Run Code Online (Sandbox Code Playgroud)
在这里传递 id :
<button onclick="myFunction1('myDIV1')">One</button>
<button onclick="myFunction1('myDIV2')">Two</button>
<button onclick="myFunction1('myDIV3')">Three</button>
<button onclick="myFunction1('myDIV4')">Four</button>
Run Code Online (Sandbox Code Playgroud)