You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为字体增减脚本添加Local Storage功能?

为字体缩放脚本添加LocalStorage保存功能

先说明原脚本的两处关键问题:

  • 类选择器中多余的反斜杠会导致按钮绑定失效,比如$("\.resetFont")需改为$(".resetFont")
  • 直接修改多个元素的像素字体大小,没有统一基准,不利于存储和恢复设置

以下是修复并集成LocalStorage功能的完整代码,同时优化了逻辑,用统一缩放比例管理字体大小,避免累积误差:

// 定义LocalStorage存储键名,方便统一维护
const FONT_SCALE_KEY = 'fontScale';

// 获取当前保存的缩放比例,默认1(原始大小)
function getCurrentFontScale() {
  const savedScale = localStorage.getItem(FONT_SCALE_KEY);
  return savedScale ? parseFloat(savedScale) : 1;
}

// 将缩放比例保存到LocalStorage
function saveFontScale(scale) {
  localStorage.setItem(FONT_SCALE_KEY, scale.toFixed(4)); // 保留4位小数避免精度异常
}

// 将缩放比例应用到所有目标元素
function applyFontScale(scale) {
  const fontTargets = ['body', 'p', 'table', 'tr', 'td', 'tbody', '.postcolor'];
  fontTargets.forEach(element => {
    $(element).css('font-size', `${scale}em`); // 用em相对单位,基于html根字体大小
  });
}

// 字体大小调整核心函数
var changeFontSize = function (increaseFont) {
  let currentScale = getCurrentFontScale();
  // 调整缩放比例
  currentScale = increaseFont ? currentScale * 1.05 : currentScale * 0.9;
  // 限制缩放范围(可选,避免字体过大/过小)
  currentScale = Math.max(0.7, Math.min(1.5, currentScale));
  // 保存并应用新比例
  saveFontScale(currentScale);
  applyFontScale(currentScale);
};

$(document).ready(function () {
  // 页面加载时恢复用户保存的缩放设置
  const initialScale = getCurrentFontScale();
  applyFontScale(initialScale);

  // 重置字体大小
  $(".resetFont").click(function () {
    saveFontScale(1);
    applyFontScale(1);
  });

  // 增大字体
  $(".increaseFont").on('click', function () {
    changeFontSize(true);
  });

  // 减小字体
  $(".decreaseFont").on('click', function () {
    changeFontSize(false);
  });
});

关键优化说明:

  • 统一缩放基准:用相对缩放比例代替直接修改像素值,存储和恢复更简单,避免多次调整后的精度误差
  • LocalStorage逻辑封装:把获取、保存缩放比例的逻辑拆成独立函数,代码更易维护
  • 修复选择器错误:移除类选择器中的多余反斜杠,确保按钮点击事件正常绑定
  • 缩放范围限制:添加0.7-1.5的缩放区间,防止字体被调整到难以阅读的大小(可按需修改或移除)
  • 精度处理:保存时保留4位小数,规避浮点数运算的精度问题

内容的提问来源于stack exchange,提问作者colorfullysarah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:15:21