可用 localstorage 持久化保存笔刷粗细:调整时存入字符串值(如"drawing-brush-size"),加载时读取并设为默认值(如"3"),同步更新表单和 canvas linewidth;需 try...catch 兜底并校验数值有效性。

要让网页绘图工具记住用户上次选择的笔刷粗细,可以用 localStorage 把数值存到浏览器本地,并在页面加载时自动读取、应用。
保存笔刷粗细到 localStorage
当用户调整笔刷(比如通过 <input type="range"> 或下拉菜单),触发事件后立即将当前值存入 localStorage:
- 确保值是字符串类型(
localStorage只支持字符串),可用.toString()或模板字面量转换 - 推荐使用有意义的键名,如
"drawing-brush-size",避免和其他功能冲突 - 示例代码:
const sizeInput = document.getElementById("brushSize");<br> sizeInput.addEventListener("change", () => {<br> localStorage.setItem("drawing-brush-size", sizeInput.value);<br> });
页面加载时读取并设置默认笔刷粗细
在 DOMContentLoaded 或绘图初始化阶段,从 localStorage 读取并同步到 UI 和绘图上下文:
- 用
localStorage.getItem("drawing-brush-size")获取值,注意返回可能是null - 建议提供合理默认值(如
3),防止首次访问或数据丢失时出错 - 不仅要设到表单控件(如
sizeInput.value = storedSize),还要同步更新 Canvas 的ctx.lineWidth - 示例:
const savedSize = localStorage.getItem("drawing-brush-size") || "3";<br> sizeInput.value = savedSize;<br> ctx.lineWidth = parseFloat(savedSize);
兼容性与健壮性处理
localStorage 在无痕模式或禁用时可能抛错,需简单兜底:
- 用
try...catch包裹读写操作,避免因存储不可用导致脚本中断 - 检查
typeof localStorage !== 'undefined'再使用(极少数老旧环境不支持) - 若读取到非数字值(如空字符串、"abc"),应转为默认值再赋给
lineWidth,防止 Canvas 渲染异常
扩展:支持多画布/多配置场景
如果工具支持多个画布或不同绘图模式(铅笔/橡皮/高亮),可将配置结构化存储:
- 用对象组织数据,如
{ "pencil": 4, "eraser": 20 },再用JSON.stringify()存入 - 读取时用
JSON.parse()还原,配合当前工具类型动态取值 - 键名可加入版本前缀(如
"drawing-config-v2"),便于未来升级时迁移旧数据
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











