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

需求

  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>
相关推荐
双子座断点2 分钟前
QT 机器视觉 (3. 虚拟相机SDK、测试工具)
qt·1024程序员节
20岁30年经验的码农15 分钟前
爬虫基础
1024程序员节
licy__34 分钟前
计算机网络IP地址分类,子网掩码,子网划分复习资料
1024程序员节
Chris-zz1 小时前
Linux:磁盘深潜:探索文件系统、连接之道与库的奥秘
linux·网络·c++·1024程序员节
JasonYin~1 小时前
《探索 HarmonyOS NEXT(5.0):开启构建模块化项目架构奇幻之旅 —— 模块化基础篇》
1024程序员节
Teamol20202 小时前
求助帖:ubuntu22.10 auto install user-data配置了为何还需要选择语言键盘(如何全自动)
linux·ubuntu·1024程序员节
尘佑不尘2 小时前
shodan5,参数使用,批量查找Mongodb未授权登录,jenkins批量挖掘
数据库·笔记·mongodb·web安全·jenkins·1024程序员节
SeniorMao0073 小时前
结合Intel RealSense深度相机和OpenCV来实现语义SLAM系统
1024程序员节
网安_秋刀鱼3 小时前
CSRF防范及绕过
前端·安全·web安全·网络安全·csrf·1024程序员节