HTML怎么做体重记录页_html体重变化记录图表页面【含示例】

云浩大大_9715

云浩大大_9715

2026-05-22

828人浏览

原创

用实现轻量离线体重趋势图:数据存localstorage并校验格式,横轴等距分配天数,纵轴动态计算范围,手动绘制坐标与标签,输入框限制范围与精度,日期统一用iso字符串和tolocaledatestring安全格式化。

html怎么做体重记录页_html体重变化记录图表页面【含示例】

用 <canvas></canvas> 画体重趋势折线图,别碰 SVG 或第三方库

纯 HTML 页面做体重记录,核心诉求是“轻量、离线可用、改数据就刷新图表”,<canvas></canvas> 是最直接的选择。SVG 虽然语义清晰,但动态重绘坐标轴和标签要写一堆 DOM 操作;引入 Chart.js 等库反而让单页变重,还依赖网络或本地打包。

关键点在于:数据存进数组,用 ctx.lineTo() 连点,用 ctx.fillText() 手动标日期和数值——不靠自动适配,自己算像素位置,反而可控。

  • 横轴按天数等距分配,不硬套真实日期(避免时间戳换算出错)
  • 纵轴范围取 Math.min() 和 Math.max() 加上下 0.5kg 缓冲,防止文字贴边
  • 体重值建议统一用 Number 类型,避免字符串 “72.5” 导致排序/计算异常

localStorage 存体重数据,但必须校验格式再读取

页面刷新不丢数据,靠 localStorage 最省事。但用户可能手动改过 localStorage 里的值,或旧数据结构变了,直接 JSON.parse() 容易报错卡死图表。

实操时加一层防御:

  • 用 try...catch 包住 JSON.parse(localStorage.getItem('weightLog'))
  • 解析后检查是否为数组,且每项含 date(ISO 格式字符串)和 value(数字)
  • 不符合就用默认空数组,不中断后续渲染

示例校验逻辑:

Wechat HTML Publisher
Wechat HTML Publisher

直接上传HTML富文本到微信公众号草稿箱。支持完整的HTML格式,无需Markdown转换。

下载
const raw = localStorage.getItem('weightLog');
let data = [];
try {
  const parsed = JSON.parse(raw);
  if (Array.isArray(parsed) && parsed.every(d => d.date && typeof d.value === 'number')) {
    data = parsed;
  }
} catch (e) { /* 忽略错误 */ }

输入框限制体重值范围与精度,防乱输

用户手抖输个 “800” 或 “72.3456” 很常见,前端不做拦截,后端没得拦(这是纯静态页),数据就歪了。

  • 用 <input type="number" min="40" max="150" step="0.1">,浏览器原生限制基础范围
  • 提交前再用正则 /^\d{2,3}(\.\d{1,1})?$/ 强制最多一位小数(避免 72.30 显示成 72.3)
  • 输入后立刻 parseFloat(value).toFixed(1) 标准化,再存入数组

注意:step="0.1" 在部分 Safari 版本下失效,所以 JS 校验不能省。

日期显示用 toLocaleDateString(),别拼接字符串

记录体重总得带日期,但用户系统区域不同,有的显示 “2024/5/20”,有的是 “20.05.2024”。硬写 date.getFullYear() + '-' + (date.getMonth()+1) 会漏掉补零、时区、本地习惯。

  • 一律用 new Date(dateString).toLocaleDateString(navigator.language, { year: 'numeric', month: 'short', day: 'numeric' })
  • 如果存的是时间戳,先 new Date(timestamp) 再调用,别直接格式化数字
  • 图表横轴标签若需精简(如只写“5/20”),可传 { month: '2-digit', day: '2-digit' },不写年份

容易被忽略的是:localStorage 里存的日期字符串必须是 ISO 格式(如 "2024-05-20"),否则 new Date("20/05/2024") 在 Safari 下可能解析为 Invalid Date。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

html

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

5675

7

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

3232

4

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

2890

5

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.01

2919

5

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2023.08.11

4759

6

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2023.08.11

2861

3

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

2669

3

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

2023.09.01

2388

6

HTML嵌入CSS样式的方法
HTML嵌入CSS样式的方法

HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.20

2408

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 219人学习