js+css模拟手机app左侧抽屉式导航菜单弹出效果代码
代码语言:html
所属分类:菜单导航
代码描述:js+css模拟手机app左侧抽屉式导航菜单弹出效果代码
代码标签: js+css 模拟 手机 app 左侧 抽屉式 导航 菜单 弹出
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/all.6.4.0.css">
<style>
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500&family=Roboto:wght@300;400;500;700;900&display=swap");
*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
h1,
h2,
h3 {
font: inherit;
}
:root {
--light-gray-100: hsl(205, 5%, 98%);
--light-gray-200: hsl(205, 7%, 90%);
--light-gray-300: hsl(205, 12%, 83%);
--bg--base: hsl(205, 20%, 93%);
--bg-content: hsl(205, 10%, 98%);
--text: hsl(205, 7%, 46%);
--text-light: hsl(205, 7%, 60%);
--blue--accent-1: hsl(203, 80%, 52%);
--blue--accent-2: hsl(208, 77%, 43%);
--font--base: "Poppins", sans-serif;
--font--accent: "Roboto", sans-serif;
}
body {
text-rendering: optimizeSpeed;
font: 400 16px/1.3 var(--font--base);
}
.wrapper {
display: grid;
place-content: center;
min-block-size: 100vh;
background-color: var(--bg--base);
padding: 1rem;
}
.layout-container {
--width: 23.4375rem;
--height: 41.6875rem;
inline-size: var(--width);
block-size: var(--height);
background-color: var(--bg-content);
contain: strict;
position: relative;
border-radius: 1.5rem;
box-shadow: rgba(50, 50, 93, 0.25) 0px 50px 100px -20px,
rgba(0, 0, 0, 0.3) 0px 30px 60px -30px;
}
.overlay-sidebar {
inset: 0;
width: inherit;
height: inherit;
position: fixed;
z-index: 99;
transition: background-color 266ms;
}
.active {
background-color: #0004;
transition: background-color 266ms ease-in;
}
nav {
display: flex;
block-size: var(--height);
inline-size: calc(var(--width) * 0.8);
}
.toggle-button {
margin: 1rem;
position: absolute;
display: inline-grid;
padding: 0.25rem;
border: 0;
cursor: pointer;
background-color: #0000;
}
.menu-icon-svg {
fill: #333;
width: 2.5ch;
aspect-ratio: 1;
}
.toggle-button[aria-expanded="true"] {
pointer-events: none;
display: none;
}
.primary-navigation {
flex-grow: 1;
list-style: none;
background-color: #fff;
position: relative;
}
.primary-navigation::after {
content: "";
position: absolute;
inset: 0;
z-index: -1;
opacity: 0;
box-shadow: 3px 0 7px -1px #0003;
}
.primary-navigation[data-hidden="false"]::after {
opacity: 1;
transition: opacity 400ms 50ms;
}
.primary-navigation[data-hidden="true"] {
transform: translateX(-100%);
visibility: hidden;
transition: transform 400ms, visibility 0ms 400ms;
}
.primary-navigation[data-hidden="false"] {
transform: translateX(0%);
visibility: visible;
transition: transform 400ms, visibility 0ms;
}
.nav-item {
display: grid;
grid-template:
"header" 10em
"sub-nav" 1fr / auto;
}
.primary-navigation--header {
grid-area: header;
display: flex;
flex-flow: column;
justify-content: space-evenly;
padding: 1rem;
gap: 1rem;
background-image: linear-gradient(
45deg,
hsl(36deg 78% 59%),
30%,
hsl(30deg 60% 88%)
);
pointer-events: none;
}
.header__icon {
display: inline-grid;
place-content: center;
aspect-ratio: 1;
width: 2.5rem;
}
.header__icon i {
border-radius: 50%;
font-size: 2.25rem;
color: white;
}
.user__info {
display: flex;
line-height: 1.4;
flex-flow: column;
color: var(--text);
}
.user__name {
font-size: 17px;
}
.user__mail {
font-size: 13px;
font-weight: 600;
}
.sub__navigation--container {
list-style: none;
margin: 0.5rem 0;
display: flex;
flex-flow: column;
gap: 0.25rem;
}
.sub__navigation--container:last-of-type {
margin-block: 1rem;
border-block-start: 2px solid var(--light-gray-200);
}
.nav__link:hover {
background-color: var(--light-gray-200);
}
.sub__nav-item {
height: 2.5rem;
margin-inline: 0.5rem;
}
.nav__link {
text-decoration: none;
display: flex;
align-items: cente.........完整代码请登录后点击上方下载按钮下载查看
网友评论0