如何使用 CSS 和 JavaScript 创建幕帘导航菜单?
在本文中,我们将学习如何使用 HTML、CSS 和 JavaScript 创建幕帘导航菜单。
幕帘导航菜单将覆盖整个屏幕,并将当前页面推回。这些菜单显示链接的子链接,使导航更加具体。
要创建幕帘导航,我们必须像之前所做的那样。在幕帘导航中,我们有两个按钮,一个是打开按钮(菜单),另一个是关闭按钮(叉号)。
当您单击打开按钮时,导航将显示在屏幕上,或者如果您单击关闭按钮,则导航将从屏幕上隐藏。
在本例中,我们正在创建一个显示“幕帘导航菜单”的网页。单击后将出现一个包含 4 个链接的菜单。
Example.html
创建一个HTML文件,我们将在其中定义页面的结构(视图)。在本例中,使用 HTML 代码,我们正在创建当前页面,其中包含所需的文本、幕帘导航和菜单的空导航链接。
<body>
<!-- HTML -->
<nav class="side-nav">
<a href="#" class="cls_btn">×</a>
<a href="#">Home</a>
<a href="#">Tutorials</a>
<a href="#">AboutUs</a>
<a href="#">ContactUs</a>
</nav>
<button class="opn_btn">☰</button>
Example.css
添加CSS 样式以在幕帘导航菜单上提供背景和悬停效果,以获得更好的外观。在本例中,我们正在设置幕帘导航菜单的样式,如果悬停在链接上,背景颜色将更改。
<style>
/*CSS*/
.side-nav {
height: 100vh;
width: 0;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: rgba(46, 218, 100, 0.629);
overflow-x: hidden;
padding-top: 60px;
transition: 0.5s;
}
.side-nav a {
padding: 8px 8px 8px 32px;
text-decoration: none;
font-size: 25px;
color: #000000;
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
display: block;
transition: 0.3s;
text-align: center;
}
.side-nav a:hover {
color: #f1f1f1;
}
.side-nav .cls_btn {
position: absolute;
top: 0;
right: 25px;
font-size: 36px;
margin-left: 50px;
}
button {
padding: 5px 10px;
background-color: rgb(0, 0, 0);
color: rgb(255, 255, 255);
border: none;
border-radius: 2px;
}
</style>
Example.js
使用Javascript,我们可以执行验证并在页面上处理事件。在本例中,创建打开和关闭按钮。导航将通过单击菜单栏按钮打开,并通过单击叉号按钮关闭。
<!--JavaScript -->
<script>
let opn_Btn = document.querySelector(".opn_btn");
let cls_Btn = document.querySelector(".cls_btn");
opn_Btn.addEventListener("click", () => {
document.querySelector(".side-nav").style.width = "100%";
});
cls_Btn.addEventListener("click", () => {
document.querySelector(".side-nav").style.width = "0";
});
</script>
从上面的 javascript 代码中,您可以了解我们如何显示和隐藏导航菜单。
完整示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Curtain Navigation</title>
<style>
/*CSS*/
.side-nav {
height: 100vh;
width: 0;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: rgba(46, 218, 100, 0.629);
overflow-x: hidden;
padding-top: 60px;
transition: 0.5s;
}
.side-nav a {
padding: 8px 8px 8px 32px;
text-decoration: none;
font-size: 25px;
color: #000000;
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
display: block;
transition: 0.3s;
text-align: center;
}
.side-nav a:hover {
color: #f1f1f1;
}
.side-nav .cls_btn {
position: absolute;
top: 0;
right: 25px;
font-size: 36px;
margin-left: 50px;
}
button {
padding: 5px 10px;
background-color: rgb(0, 0, 0);
color: rgb(255, 255, 255);
border: none;
border-radius: 2px;
}
</style>
</head>
<body>
<!-- HTML -->
<nav class="side-nav">
<a href="#" class="cls_btn">×</a>
<a href="#">Home</a>
<a href="#">Tutorials</a>
<a href="#">AboutUs</a>
<a href="#">ContactUs</a>
</nav>
<button class="opn_btn">☰</button>
<!--JavaScript -->
<script>
let opn_Btn = document.querySelector(".opn_btn");
let cls_Btn = document.querySelector(".cls_btn");
opn_Btn.addEventListener("click", () => {
document.querySelector(".side-nav").style.width = "100%";
});
cls_Btn.addEventListener("click", () => {
document.querySelector(".side-nav").style.width = "0";
});
</script>
</body>
</html>
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP