可通过localStorage持久保存颜色选择器的历史色板,需规范存储结构(小写7位十六进制数组,上限12个)、去重逻辑(标准化后判断是否存在)及DOM同步(加载时渲染、点击应用、支持清空)。

可以通过 localStorage 持久保存用户在网页颜色选择器中最近使用的颜色,下次打开页面时自动恢复历史色板。关键在于规范存储结构、去重逻辑和 DOM 同步更新。
1. 定义色板历史的数据结构
建议用数组存储颜色值(如十六进制字符串),并限制最大数量(例如 12 个):
- 每个颜色统一转为小写、7 位格式(如
"#ff6b35"),避免"#FF6B35"或"ff6b35"重复存入 - 使用
JSON.stringify()存入 localStorage,用键名如"color-history"
2. 添加颜色到历史并去重
每次用户选中一个新颜色后执行:
- 先从 localStorage 读取现有历史:
let history = JSON.parse(localStorage.getItem("color-history") || "[]") - 将新颜色标准化(补
#、转小写、截取前7位),并用Array.prototype.indexOf()判断是否已存在 - 若不存在,用
unshift()插入开头,再用splice(12)截断超长部分 - 最后写回:
localStorage.setItem("color-history", JSON.stringify(history))
3. 页面加载时渲染历史色板
在 DOM 加载完成后(如 DOMContentLoaded 事件中):
立即学习“前端免费学习笔记(深入)”;
- 读取
localStorage中的历史数组 - 遍历生成
<div class="swatch"></div>元素,设置style.backgroundColor为对应颜色 - 为每个色块绑定点击事件,触发颜色应用(如填入输入框或更新预览区)
4. 可选:支持手动清空历史
提供一个“清空历史”按钮,点击时执行:
localStorage.removeItem("color-history")- 同时清空页面上已渲染的色板容器(如
container.innerHTML = "")
不复杂但容易忽略:记得在颜色输入框(<input type="color">)的 change 事件中也调用添加逻辑,确保所有选色入口都生效。



















