导航栏与内容板块联动

2024-05-10 06:20
文章标签 内容 联动 导航 板块

本文主要是介绍导航栏与内容板块联动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目的:

  • 实现点击导航栏内容页面滑动到对应内容区域
  • 页面滑动到某一区域,导航栏对应内容颜色发生改变

HTML代码:

导航栏设置id,内容区域设置对应id,实现查询

<nav><ul><li><a href="#section1">Section 1</a></li><li><a href="#section2">Section 2</a></li><li><a href="#section3">Section 3</a></li></ul>
</nav><section id="section1">Section 1 Content</section>
<section id="section2">Section 2 Content</section>
<section id="section3">Section 3 Content</section>

CSS代码:

实现滑动到某一区域,对应导航栏字体颜色发生改变

/* 添加导航栏选中状态的样式 */
nav a.active {color: red;
}

JS代码:

这段代码通过遍历所有导航链接,为每个链接添加了一个点击事件监听器。当用户点击导航链接时,会执行以下操作:

  • e.preventDefault(); 阻止默认的链接跳转行为
  • const targetId = this.getAttribute('href'); 获取被点击链接的href属性,即目标内容的id
  •  document.querySelector(targetId).scrollIntoView({ behavior: 'smooth' }); 将页面平滑滚动到对应ID的内容区域。
document.querySelectorAll('nav a').forEach(anchor => {anchor.addEventListener('click', function(e) {e.preventDefault();const targetId = this.getAttribute('href');document.querySelector(targetId).scrollIntoView({behavior: 'smooth'});});
});

这段代码添加了一个滚动事件监听器,当页面滚动时会执行以下操作:

  • 遍历所有的<section>元素,找到当前可见内容对应的部分的id,并将其存储在current变量中
  •  遍历所有导航链接,移除它们的"active"类,然后根据current变量的值,为对应的导航链接添加"active"类,以标记当前所在位置
window.addEventListener('scroll', function() {const sections = document.querySelectorAll('section');let current = '';sections.forEach(section => {const sectionTop = section.offsetTop;const sectionHeight = section.clientHeight;if (pageYOffset >= sectionTop - sectionHeight / 3) {current = section.getAttribute('id');}});document.querySelectorAll('nav a').forEach(a => {a.classList.remove('active');if (a.getAttribute('href').slice(1) === current) {a.classList.add('active');}});
});

这篇关于导航栏与内容板块联动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/975678

相关文章

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Java如何将文件内容转换为MD5哈希值

《Java如何将文件内容转换为MD5哈希值》:本文主要介绍Java如何将文件内容转换为MD5哈希值的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java文件内容转换为MD5哈希值一个完整的Java示例代码代码解释注意事项总结Java文件内容转换为MD5

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

全解析CSS Grid 的 auto-fill 和 auto-fit 内容自适应

《全解析CSSGrid的auto-fill和auto-fit内容自适应》:本文主要介绍了全解析CSSGrid的auto-fill和auto-fit内容自适应的相关资料,详细内容请阅读本文,希望能对你有所帮助... css  Grid 的 auto-fill 和 auto-fit/* 父元素 */.gri

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown