侧边导航

创建于 2024-12-03 / 48
字体: [默认] [大] [更大]

了解如何创建动画、可关闭的侧边导航菜单。


× About Services Clients Contact × About Services Clients Contact × About Services Clients Contact




亲自试一试 »

创建动画侧边导航

步骤 1) 添加 HTML:

实例

<div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
  <a href="#">About</a>
  <a href="#">Services</a>
  <a href="#">Clients</a>
  <a href="#">Contact</a>
</div>

<!-- 使用任意元素打开sidenav -->
<span onclick="openNav()">open</span>

<!-- 如果您希望侧导航将页面内容推送到右侧,则在此 div 中添加所有页面内容(如果您只希望侧导航位于页面顶部,则不使用) -->
<div id="main">
  ...
</div>
步骤 2) 添加 CSS:

实例

/* 侧边导航菜单 */
.sidenav {
  height: 100%; /* 100% 全高 */
  width: 0; /* 0 宽度 - 使用 JavaScript 更改 */
  position: fixed; /* 原地不动 */
  z-index: 1; /* 保持在顶部 */
  top: 0; /* 保持在顶部 */
  left: 0;
  background-color: #111; /* Black*/
  overflow-x: hidden; /* 禁用水平滚动 */
  padding-top: 60px; /* 将内容从顶部放置 60px */
  transition: 0.5s; /* 0.5 秒过渡效果在侧导航中滑动 */
}

/* 导航菜单链接 */
.sidenav a {
  padding: 8px 8px 8px 32px;
  text-decoration: none;
  font-size: 25px;
  color: #818181;
  display: block;
  transition: 0.3s;
}

/* 当您将鼠标悬停在导航链接上时,更改它们的颜色 */
.sidenav a:hover {
  color: #f1f1f1;
}

/* 关闭按钮的位置和样式(右上角) */
.sidenav .closebtn {
  position: absolute;
  top: 0;
  right: 25px;
  font-size: 36px;
  margin-left: 50px;
}

/* 样式页面内容 - 如果您想在打开侧导航时将页面内容推送到右侧,请使用此选项 */
#main {
  transition: margin-left .5s;
  padding: 20px;
}

/* 在高度小于 450 像素的小屏幕上,更改 sidenav 的样式(更少的填充和更小的字体大小)*/
@media screen and (max-height: 450px) {
  .sidenav {padding-top: 15px;}
  .sidenav a {font-size: 18px;}
}

步骤 3) 添加 JavaScript:

下面的示例在侧边导航中滑动,使其宽度为 250 像素:

Sidenav Overlay 实例

/* 设置侧边导航的宽度为 250px */
function openNav() {
  document.getElementById("mySidenav").style.width = "250px";
}

/* 设置侧边导航的宽度为 0 */
function closeNav() {
  document.getElementById("mySidenav").style.width = "0";
} 亲自试一试 »

下例在侧边导航中滑动,将页面内容推送到右侧(用于设置侧边导航宽度的值也用于设置"页面内容"的左边距):

侧边导航推送内容

/* 设置侧边导航的宽度为250px,页面内容的左边距为250px */
function openNav() {
  document.getElementById("mySidenav").style.width = "250px";
  document.getElementById("main").style.marginLeft = "250px";
}

/* 设置侧边导航的宽度为0,页面内容的左边距为0 */
function closeNav() {
  document.getElementById("mySidenav").style.width = "0";
  document.getElementById("main").style.marginLeft = "0";
} 亲自试一试 »

下面的例子也在侧边导航中滑动,并将页面内容推送到右侧,只是这一次,我们为 body 元素添加了一个不透明度为 40% 的黑色背景色,以"突出显示"侧边导航:

带不透明度的 侧边导航 推送内容

/* 设置侧边导航的宽度为250px,页面内容的左边距为250px,并为body添加黑色背景色*/
function openNav() {
  document.getElementById("mySidenav").style.width = "250px";
  document.getElementById("main").style.marginLeft = "250px";
  document.body.style.backgroundColor = "rgba(0,0,0,0.4)";
}

/* 设置侧边导航的宽度为0,页面内容的左边距为0,body的背景颜色为白色*/
function closeNav() {
  document.getElementById("mySidenav").style.width = "0";
  document.getElementById("main").style.marginLeft = "0";
  document.body.style.backgroundColor = "white";
} 亲自试一试 »

下面的示例从左侧滑入侧边导航并覆盖整个页面(100% 宽度):

侧边导航 Full-width:

/* 打开侧导航 */
function openNav() {
  document.getElementById("mySidenav").style.width = "100%";
}

/* 关闭/隐藏侧导航 */
function closeNav() {
  document.getElementById("mySidenav").style.width = "0";
} 亲自试一试 »

下面的示例打开和关闭没有动画的侧导航菜单:

没有动画的没边导航

/* 打开侧导航 */
function openNav() {
  document.getElementById("mySidenav").style.display = "block";
}

/* 关闭/隐藏侧导航 */
function closeNav() {
  document.getElementById("mySidenav").style.display = "none";
} 亲自试一试 »

下面的示例显示了如何创建右侧导航菜单:

右侧导航:

.sidenav {
  right: 0;
} 亲自试一试 »

下面的示例显示了如何创建始终显示(固定)的侧边导航菜单:

始终显示侧边导航:

/* 侧导航 */
.sidenav {
  height: 100%;
  width: 200px;
  position: fixed;
  z-index: 1;
  top: 0;
  left: 0;
  background-color: #111;
  overflow-x: hidden;
  padding-top: 20px;
}

/* 页面内容 */
.main {
  margin-left: 200px; /* 与 sidenav 的宽度相同 */
} 亲自试一试 »

提示: 转到我们的 CSS 导航栏教程,了解有关导航栏的更多信息。



0 人点赞过