[英]Toggle block and none display using an anchor tag
In my electron app I want to toggle between different screens, thus I need to use block and none displays.在我的电子应用程序中,我想在不同的屏幕之间切换,因此我需要使用块和无显示。 I have a side navbar which contain the anchor tags, whenever I click one of those I want my screen to block all the other screens and display the one which was clicked.
我有一个包含锚标记的侧面导航栏,每当我单击其中一个时,我希望我的屏幕阻止所有其他屏幕并显示被单击的那个。
Side NavBar - not attaching the css for it侧导航栏-不为它附加 css
<div class="sidebar">
<a href="#home" class="nava" id="homebtn" onclick="showhome()">Home</a>
<a href="#tasks" class="nava" id="taskbtn" onclick="showtasks()">Tasks</a>
<a href="#contact" class="nava">TimeTable</a>
<a href="#about" class="nava">Quick notes</a>
<a href="#about" class="nava">Expenses</a>
</div>
Different Displays不同的显示
<div id="home" class="screen" style="display: none">
<h1 class="centertitle">Home</h1>
</div>
<div id="tasks" class="screen" style="display: none">
<h1 class="centertitle">Tasks</h1>
</div>
Script脚本
<script>
function showtasks() {
let task = document.getElementById("tasks");
let taskbtn = document.getElementById("taskbtn");
let allnav = document.getElementsByClassName("nava");
let allscreens = document.getElementsByClassName("screen");
allscreens.style.display = "none";
task.style.display = "block";
allnav.className = "";
taskbtn.className = "active";
}
function showhome() {
let home = document.getElementById("home");
let homebtn = document.getElementById("homebtn");
let allnav = document.getElementsByClassName("nava");
let allscreens = document.getElementsByClassName("screen");
allscreens.style.display = "none";
home.style.display = "block";
allnav.className = "";
homebtn.className = "active";
}
</script>
The problem here is the allscreens variable.这里的问题是 allscreens 变量。
getElementsByClassName returns an array of elements with the given class name. getElementsByClassName返回具有给定类名的元素数组。 So in order to set them all to
display: none
, you will need to loop through the elements.因此,为了将它们全部设置为
display: none
,您需要遍历元素。
let allscreens = document.getElementsByClassName("screen");
for (var i = 0; i < allscreens.length; i++) {
allscreens[i].style.display = "none";
}
function showtasks() { let task = document.getElementById("tasks"); let taskbtn = document.getElementById("taskbtn"); let allnav = document.getElementsByClassName("nava"); let allscreens = document.getElementsByClassName("screen"); for (var i = 0; i < allscreens.length; i++ ) { allscreens[i].style.display = "none"; } task.style.display = "block"; allnav.className = ""; taskbtn.className = "active"; } function showhome() { let home = document.getElementById("home"); let homebtn = document.getElementById("homebtn"); let allnav = document.getElementsByClassName("nava"); let allscreens = document.getElementsByClassName("screen"); for (var i = 0; i < allscreens.length; i++ ) { allscreens[i].style.display = "none"; } home.style.display = "block"; allnav.className = ""; homebtn.className = "active"; }
<div class="sidebar"> <a href="#home" class="nava" id="homebtn" onclick="showhome()">Home</a> <a href="#tasks" class="nava" id="taskbtn" onclick="showtasks()">Tasks</a> <a href="#contact" class="nava">TimeTable</a> <a href="#about" class="nava">Quick notes</a> <a href="#about" class="nava">Expenses</a> </div> <div id="home" class="screen" style="display: none"> <h1 class="centertitle">Home</h1> </div> <div id="tasks" class="screen" style="display: none"> <h1 class="centertitle">Tasks</h1> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.