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;
}