JSFiddle - React, Tailwind, and code Playground
by HDL52
HTML
<body style="timeline-scope: --t1,--t2,--t3,--t4,--t5,--t6;">
<nav>
<a href="#t1" style="--s: --t1">一、标题一</a>
<a href="#t2" style="--s: --t2;">二、标题二</a>
<a href="#t3" style="--s: --t3">三、标题三</a>
<a href="#t4" style="--s: --t4">四、标题四</a>
<a href="#t5" style="--s: --t5">五、标题五</a>
<a href="#t6" style="--s: --t6">六、标题六</a>
</nav>
<h1>CSS 电梯导航</h1>
<div class="content" style="--s: --t1">
<h2 id="t1">一、标题一</h2>
<section>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</section>
</div>
<div class="content" style="--s: --t2">
<h2 id="t2">二、标题二</h2>
<section>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</section>
</div>
<div class="content" style="--s: --t3">
<h2 id="t3">三、标题三</h2>
<section>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</section>
</div>
<div class="content" style="--s: --t4">
<h2 id="t4">四、标题四</h2>
<section>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</section>
</div>
<div class="content" style="--s: --t5">
<h2 id="t5">五、标题五</h2>
<section>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</section>
</div>
<div class="content" style="--s: --t6">
<h2 id="t6">六、标题六</h2>
<section>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
...
CSS
html,
body {
font-family: -apple-system, "BlinkMacSystemFont", sans-serif;
margin: 0;
/* height: 100%;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center; */
background: aliceblue;
scroll-behavior: smooth;
}
body {
padding: 0 15px;
}
h2 {
margin: 0;
padding: .8em 0;
scroll-margin: 20px;
}
.content {
view-timeline-name: var(--s);
view-timeline-inset: 50%;
}
nav {
position: fixed;
top: 15px;
right: 15px;
background: #fff;
padding: 10px 0;
border-radius: 4px;
overflow: hidden;
}
nav>a {
position: relative;
display: block;
line-height: 2;
padding: 0 15px;
font-size: 14px;
color: #191919;
text-decoration: none;
animation: active;
animation-timeline: var(--s);
border-left: 4px solid transparent;
}
@keyframes active {
0%,
100% {
color: #6f00ff;
border-color: #6f00ff;
}
}
nav>a:hover {
background-color: #d5d5d54a;
}
section {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
section span {
width: 30%;
height: 100px;
border-radius: 4px;
background-color: #E4CCFF;
}