【css+JavaScript 】关于链接选中且通过 js 设置持久的选中状态

embedded/2024/11/19 20:47:36/

1、点击后选中状态保持:当你点击任意链接时,它的颜色变为红色,并且页面刷新后仍然保留选中状态。

2、页面刷新后保持选中:即使刷新页面,选中的链接也能通过 localStorage 恢复,确保用户的选中状态持续存在。

html代码示例:当你点击任意一个链接时,它的颜色会变为红色,而其他的链接颜色保持蓝色。

 <header><nav><ul><li><a href="status.html" id="status">Status</a></li><li><a href="ipSettings.html" id="ipSettings">IP Settings</a></li><li><a href="rtsp.html" id="rtsp">RTSP</a></li><li><a href="system.html" id="system">System</a></li></ul></nav></header>

css+js代码:用 JavaScript 动态添加或移除 .active 类来改变被点击的链接样式。

1、DOMContentLoaded 事件中,我们为每个链接添加了 click 事件监听器。当用户点击链接时,调用 setActiveLink 函数来设置选中状态。

2、setActiveLink 会清除所有链接的 active 类,确保只有一个链接处于选中状态。然后将当前点击的链接的 id 保存在 localStorage 中。

3、页面加载时会检查 localStorage 中是否有已保存的选中链接的 id。如果有,就恢复选中状态。

javascript"> <style>/* 默认链接样式 */nav ul li a {color: blue;text-decoration: none;padding: 10px;display: inline-block;}/* 被点击后的链接样式 */nav ul li a.active {color: red; /* 点击后变红 */text-decoration: underline; /* 点击后添加下划线 */}/* 如果需要,可以添加 hover 样式 */nav ul li a:hover {text-decoration: underline;}</style><script>document.addEventListener('DOMContentLoaded', function() {const links = document.querySelectorAll('nav ul li a');// 函数:为链接添加 active 类,保持选中状态function setActiveLink(link) {// 清除所有链接的 active 类links.forEach(function(otherLink) {otherLink.classList.remove('active');});// 为当前点击的链接添加 active 类link.classList.add('active');// 保存选中状态到 localStoragelocalStorage.setItem('activeLink', link.id);}// 加载页面时,根据 localStorage 恢复选中状态const activeLinkId = localStorage.getItem('activeLink');if (activeLinkId) {const activeLink = document.getElementById(activeLinkId);if (activeLink) {setActiveLink(activeLink);}}// 为每个链接添加点击事件links.forEach(function(link) {link.addEventListener('click', function(event) {setActiveLink(event.target);});});});</script>

http://www.ppmy.cn/embedded/138861.html

相关文章

怎样选择合适的服务器租用呢?

在数字化时代当中&#xff0c;企业选择合适的服务器租用是至关重要的&#xff0c;服务器是承载着网站和数据存储的主要核心&#xff0c;服务器的稳定性会影响到网站的访问速度和用户的体验感&#xff0c;本文就从几个方面来探讨怎样选择合适的服务器租用吧&#xff01; 首先企业…

【MYSQL】什么是关系型数据库与非关系型数据库?

真正的让你快速理解什么是关系型数据库与非关系型数据库~ 主要是以查询语句&#xff0c;存储结构&#xff0c;拓展 性上的区别。 关系型数据库&#xff08;最经典就是mysql&#xff0c;oracle&#xff09;&#xff1a;它是支持SQL语言&#xff0c;并且关系型数据库大部分都支持…

C# 常用三方库

C# 第三方库 C# 第三方库日志工具库REST 客户端JSON 处理App.config 文件自定义ConfigSection 的 auto 配置ORM 工具嵌入数据库条码/二维码通讯类组件串口通讯 https://www.nuget.org/packages/GodSharp.SerialPort/Modbus 通讯组件西门子通讯组件Fins协议通讯组件, 报表组件包…

pytorch训练的双卡,一个显卡占有20GB,另一个卡占有8GB,怎么均衡?

在PyTorch中实现多卡训练时&#xff0c;如果出现显存不均衡的问题&#xff0c;可以通过以下方法尝试均衡显存使用&#xff1a; 1. 调整DataParallel或者DistributedDataParallel策略 DataParallel&#xff1a;默认情况下&#xff0c;DataParallel会将模型放在第一块卡上&…

spring-data-elasticsearch 3.2.4 实现桶bucket排序去重,实现指定字段的聚合搜索

一、背景 es索引有一个文档CourseIndex&#xff0c;下面是示意: creatorIdgradesubjectnameno1002270英语听力课程一N00232DS91004380数学口算课程N00209DK71003480物理竞赛课程N00642XS21002280英语听力课程二N00432WS31002290英语听力课程三N002312DP5 在搜索的时候&#…

SpringBoot使用@Validated注解实现参数的验证

1、@Validated注解的简介 @Validated 注解是 Spring 框架中用于数据验证的强大工具,它可以与 JSR-303/349/380 注解结合使用,提供灵活的验证机制。通过合理使用 @Validated 注解,你可以确保应用程序中的数据正确性和一致性,从而提高应用程序的健壮性和用户体验。 @Valida…

linux MQTT 环境部署和c代码举例

1&#xff0c;安装MQTT库 sudo apt-get install mosquitto mosquitto-clients sudo apt-get update 部署服务器&#xff1a; larkubuntu:sudo systemctl restart mosquitto 客服端订阅者 larkubuntu:mosquitto_sub -t test/topic 客户端发布者 larkubuntu:mosquitto_pub -t tes…

MongoDB分布式集群搭建----副本集----PSS/PSA

MongoDB分布式集群 Replication 复制、Replica Set 复制集/副本集 概念 一、 副本集的相关概念 1.概念 “ A replica set is a group of mongod instances that maintain the same data set. ” 一组MongoDB服务器&#xff08;多个mongod实例&#xff09;&#xff08;有不…