javascript - 如何使这个显示/隐藏脚本工作?

标签 javascript jquery html css

我是 JavaScript 的新手。我用我的菜鸟知识写了一个简单的显示/隐藏 Canvas 脚本。它可以工作,但不是我想要的那样。我希望在用户登录时显示左侧的 #mySidenav。它正在工作,但它隐藏了实际的仪表板内容,因为 #main 的行为就像 #mySidenav 已关闭。我怎样才能使它工作?

function openNav() {
  document.getElementById("mySidenav").style.width = "250px";
  document.getElementById("main").style.marginLeft = "250px";
  document.body.style.backgroundColor = "rgba(0,0,0,0.4)";
}

function closeNav() {
  document.getElementById("mySidenav").style.width = "0";
  document.getElementById("main").style.marginLeft = "0";
  document.body.style.backgroundColor = "white";
}
body {
  font-family: "Lato", sans-serif;
  transition: background-color .5s;
}
.sidenav {
  height: 100%;
  width: 250px;
  position: fixed;
  z-index: 1;
  top: 0;
  left: 0;
  background-color: #111;
  overflow-x: hidden;
  transition: 0.5s;
  padding-top: 60px;
}
.sidenav a {
  padding: 8px 8px 8px 32px;
  text-decoration: none;
  font-size: 25px;
  color: #818181;
  display: block;
  transition: 0.3s
}
.sidenav a:hover,
.offcanvas a:focus {
  color: #f1f1f1;
}
.sidenav .closebtn {
  position: absolute;
  top: 0;
  right: 25px;
  font-size: 36px;
  margin-left: 50px;
}
#main {
  transition: margin-left .5s;
  padding: 16px;
}
<div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
  <a href="#">Employees</a>
  <a href="#">Schedules</a>
  <a href="#">Clients</a>
  <a href="#">Timesheets</a>
</div>

<div id="main">
  <h2>Admin Dashboard</h2>

  <span style="font-size:30px;cursor:pointer" onclick="openNav()">&#9776; open</span>
</div>

最佳答案

最简单的方法可能只是将 openNav() 更改添加到默认的 HTML/CSS,这样 openNav() 状态就是您在页面上看到的状态负载。

function openNav() {
  document.getElementById("mySidenav").style.width = "250px";
  document.getElementById("main").style.marginLeft = "250px";
  document.body.style.backgroundColor = "rgba(0,0,0,0.4)";
}

function closeNav() {
  document.getElementById("mySidenav").style.width = "0";
  document.getElementById("main").style.marginLeft = "0";
  document.body.style.backgroundColor = "white";
}
body {
  font-family: "Lato", sans-serif;
  transition: background-color .5s;
  background-color: rgba(0,0,0,0.4);
}
.sidenav {
  height: 100%;
  width: 250px;
  position: fixed;
  z-index: 1;
  top: 0;
  left: 0;
  background-color: #111;
  overflow-x: hidden;
  transition: 0.5s;
  padding-top: 60px;
}
.sidenav a {
  padding: 8px 8px 8px 32px;
  text-decoration: none;
  font-size: 25px;
  color: #818181;
  display: block;
  transition: 0.3s
}
.sidenav a:hover,
.offcanvas a:focus {
  color: #f1f1f1;
}
.sidenav .closebtn {
  position: absolute;
  top: 0;
  right: 25px;
  font-size: 36px;
  margin-left: 50px;
}
#main {
  transition: margin-left .5s;
  padding: 16px;
  margin-left: 250px;
}
<div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
  <a href="#">Employees</a>
  <a href="#">Schedules</a>
  <a href="#">Clients</a>
  <a href="#">Timesheets</a>
</div>

<div id="main">
  <h2>Admin Dashboard</h2>

  <span style="font-size:30px;cursor:pointer" onclick="openNav()">&#9776; open</span>
</div>

关于javascript - 如何使这个显示/隐藏脚本工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42044909/

相关文章:

javascript - 从数组中选择仅显示一次的图像

javascript - 如何随机化此 2D 像素扩散函数以模拟火势蔓延?

javascript - 多个表单提交验证?

Jquery css ("top") 返回 "undefined"

Jquery 在加载时关闭 box-shadow

jquery - 背景颜色有效,但图像无效。不知道为什么

javascript - 获取状态为CMM Approved的jQuery数据表的数据

javascript - 将带有图像路径值的 Json 文档插入到 css 背景属性中

javascript - 搜索打破可折叠 DIV

html - Firefox、保存的密码和更改密码对话框