跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScript大前端

JavaScript 实现滚动内容自动切换 Tab

基于 JavaScript 监听滚动事件实现页面 Tab 自动切换功能。通过计算滚动偏移量与目标区块位置的对比,动态更新导航栏激活状态。包含基础 HTML 布局及原生 JS 交互逻辑,无需依赖第三方库即可达成锚点联动效果。

乱七八糟发布于 2019/5/6更新于 2026/6/121 浏览
JavaScript 实现滚动内容自动切换 Tab

需求背景

在长页面中,通过滚动位置自动切换顶部导航栏的激活状态,提升用户体验。

实现思路

监听窗口的滚动事件,计算当前滚动距离与各个区块的位置关系,动态更新导航项的激活状态。

代码实现

HTML 结构

<header></header>
<ul class="nav">
    <li class="item active">1</li>
    <li class="item">2</li>
    <li class="item">3</li>
</ul>
<div class="container">
    <section>1</section>
    <section>2</section>
    <section>3</section>
</div>

JavaScript 逻辑

const navItems = document.querySelectorAll('.nav .item');
const sections = document.querySelectorAll('.container section');

window.addEventListener('scroll', () => {
    let currentIndex = -1;
    sections.forEach((section, index) => {
        const top = section.offsetTop;
        if (window.scrollY >= top - 60) {
            currentIndex = index;
        }
    });
    
    navItems.forEach(item => item.classList.remove('active'));
    if (currentIndex !== -1 && navItems[currentIndex]) {
        navItems[currentIndex].classList.add('active');
    }
});

目录

  1. 需求背景
  2. 实现思路
  3. 代码实现
  4. HTML 结构
  5. JavaScript 逻辑
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • OpenVLA 架构解析:基于 Prismatic VLM 与 Next Token Prediction 的动作生成
  • AI 时代为何选择 macOS:开发环境避坑指南
  • 网络安全面试常见问题与解答指南
  • ESP32 小智 AI 机器人语音对话系统设计与云端部署
  • 笔记本 CPU 环境下 Faster-Whisper 模型模式选择指南
  • 人像卡通化 AI 工具使用指南:基于 DCT-Net 模型的快速转换
  • AI 产品经理核心思维与智能产品构建指南
  • C++ 实现四舍五入算法详解
  • OpenWebUI 对外 HTTP 接口使用指南
  • OpenClaw 本地部署与飞书集成指南
  • MCP 协议详解:AI 集成中的超级翻译官与核心原理
  • 即梦 AI 基础操作指南:绘画与视频生成入门
  • 一文读懂AI语言模型
  • 从敏捷到生成式:AIGC如何改变软件测试的全流程
  • Ubuntu 22.04 部署 Openclaw AI 助手实战指南
  • 10款主流AI降重工具功能对比与使用指南
  • OpenClaw 开源 AI 智能体框架:技术架构、生态与部署实战
  • MacOS 系统 Whisper-WebUI 崩溃问题排查与修复方案
  • Android 免 Root 自动抢红包工具 AutoRobRedPackage 使用指南
  • C++ 左值与右值详解:概念、引用及移动语义实践

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online