电梯导航 - 点击标题跳转对应区域

需求

  1. 点击标题,使用a标签的锚点自动跳到对应区域
  2. 滚动区域,右边自动切换对应的标题
js 复制代码
<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <style>
    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;
    }
  </style>
</head>

<body>
  <div>
    <!-- ☆☆☆☆☆ 利用 a 标签的锚点实现点击跳转到有对应id的元素 -->

    <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>
          <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>
          <span></span>
          <span></span>
          <span></span>
          <span></span>
          <span></span>
        </section>
      </div>
    </body>
  </div>

  <script>

  </script>
</body>

</html>
相关推荐
被AI抢饭碗的人3 小时前
linux:io基础
1024程序员节
GIS数据转换器6 小时前
2025无人机在电力交通中的应用实践
运维·人工智能·物联网·安全·无人机·1024程序员节
TDengine (老段)15 小时前
TDengine 数学函数 CRC32 用户手册
java·大数据·数据库·sql·时序数据库·tdengine·1024程序员节
草莓熊Lotso16 小时前
C++ 继承特殊场景解析:友元、静态成员与菱形继承的底层逻辑
服务器·开发语言·c++·人工智能·经验分享·笔记·1024程序员节
-孤存-20 小时前
深入浅出:TCP/UDP协议核心原理
网络·网络协议·tcp/ip·1024程序员节
百锦再1 天前
第1章 Rust语言概述
java·开发语言·人工智能·python·rust·go·1024程序员节
开开心心就好1 天前
电脑音质提升:杜比全景声安装详细教程
java·开发语言·前端·数据库·电脑·ruby·1024程序员节
hfdz_00422 天前
BUCK电路原理和设计
电源·硬件设计·1024程序员节
hazy1k2 天前
51单片机基础-IO扩展(并转串 74HC165)
stm32·单片机·嵌入式硬件·fpga开发·51单片机·1024程序员节
unable code3 天前
攻防世界-Misc-pdf
网络安全·ctf·misc·1024程序员节