Skip to content

celebrate-birthday/Aboard

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

567 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aboard

Aboard. or.... 一个白板

只想做一个足够简单的白板。 | 𝓙𝓾𝓼𝓽 𝓪 𝓫𝓸𝓪𝓻𝓭.

License: MIT

摘要

大一小登的AI-Agent项目,目标是想做一个功能简单、部署简单,使用极其简单且符合直觉的白板,主要是为国内的初高中一体机教学使用设计

由于本人实际开发能力薄弱,所以本项目大量运用了AI-Agent技术(就是调用GitHub Agent功能来帮助我开发和高效推进功能的实现),所以代码可能没有“人味”,也可能存在相当多不合理的bug和开发方式望大佬您轻喷

您可以在下面的Demo链接中快速体验本项目,也可以前往我的博客看看我做这个项目的前因后果。

如果大佬您觉得好的话,请给我点个star🌟吧~~~大学生真的很需要这个

graph LR
    A[Aboard Project]
    A --> D[在线Demo]
    A --> E[博客文章]
    
    click D "https://aboard.pp.ua" "在线演示"
    click E "https://66619.eu.org/article/aboard" "技术文章"
Loading

当前分支和部署版本

graph LR
    A[Aboard Project]
    A --> B[main分支]
    A --> C[dev/preview分支]
    A --> D[dev/stable分支]
    A --> E[copilot/xxx分支]
    B --> F[branch Demo/主版本]
    C --> G[branch Demo/最新测试版]
    D --> H[branch Demo/稳定测试版]
    E --> I[PR中Vercel提供临时链接]

    click F "https://aboard.pp.ua" "主"
    click G "https://dev-aboard.619.pp.ua" "最新测试"
    click H "https://dev.aboard.pp.ua" "最新测试"
Loading

最近更新 (Recent Updates)

  • 配置管理:支持导出和导入应用配置(JSON格式),并在导入时智能对比差异,让个性化设置轻松迁移。
  • 性能优化:实现了功能模块的按需加载(Lazy Loading),大幅提升首屏加载速度。
  • UI 优化:统一了导出弹窗和时间设置弹窗的界面风格,视觉体验更一致。
  • 帮助系统扩展:为教具和时间显示设置添加了帮助内容,支持8种语言(简体中文、繁体中文、英语、日语、韩语、法语、德语、西班牙语)。
  • 帮助按钮优化:调整帮助按钮位置至标题右侧,帮助弹窗置于最高层级(z-index: 99999)。
  • 触控优化:增强全局触控设备兼容性,添加最小44x44px触控目标尺寸,移除触控高亮效果。
  • 触控手势增强:使用 Pointer Events API 实现更可靠的双指捏合缩放,支持触控笔+手指组合手势,兼容各种触控设备。
  • 形状预览优化:修复了形状绘制时预览线条比实际线条细的问题,实现了所见即所得。
  • 插入图片修复:修复了插入图片功能无法正常显示编辑框的严重Bug。
  • 箭头设置增强:将粗细标签统一为线条粗细,增加了箭头大小的上限(100px),并实现了箭头大小不小于线条粗细的动态约束。
  • 点名器升级:新增 Excel/CSV 表格导入功能,支持自定义姓名列读取。
  • 帮助系统:在各个设置面板中增加了帮助按钮,支持丰富的文本格式(加粗、下划线、颜色、字号)。
  • 兼容性优化:全面升级为 Pointer Events,提升 Windows 触控设备和安卓大屏的兼容性与流畅度。
  • 触控优化:新增双指捏合缩放画布功能(可在设置中开启/关闭),双击画布智能缩放,优化了触控操作的响应速度。

📖 帮助文档格式说明

在帮助内容文件中(js/locales/help/*.js),您可以使用以下类似 Markdown 的语法来丰富显示效果:

  • 加粗**加粗文本** -> 加粗文本
  • 下划线__下划线文本__ -> 下划线文本
  • 颜色[color=red]红色文本[/color] -> 红色文本
  • 字号[size=20px]大号文本[/size] -> 大号文本
这里面是AI写的功能介绍,挺详细的,可以打开看看啦

✨ 特色功能

🎨 多样化绘图工具

  • 多种笔触类型:普通笔、铅笔、圆珠笔、钢笔、毛笔,满足不同书写需求
  • 形状工具:支持绘制直线、矩形、圆形等几何形状,使用与笔相同的颜色和粗细属性
  • 丰富线条样式:实线、虚线、点线、波浪线、双线、三线,可通过独立的线条样式设置窗口进行调整
  • 智能橡皮擦:支持圆形和方形,大小可调(10-50px)
  • 丰富颜色选择:预设8种常用颜色 + 自定义取色器
  • 灵活粗细调节:笔触粗细1-50px可调

📐 专业背景图案

  • 多种教学背景:空白、点阵、方格、田字格、英语四线格、五线谱、坐标系
  • 可移动坐标系原点:坐标系原点默认在画布中心,点击"移动坐标原点"按钮后可在画布上拖动移动位置(支持触控屏)
  • 自定义背景:支持上传图片作为背景,可调节大小和位置
  • 背景图片编辑:背景图片支持拖动、旋转、缩放以及水平/垂直翻转
  • 背景样式:8种预设背景颜色 + 自定义颜色,可调节透明度和图案深浅

📏 教具功能

  • 直尺工具:支持两种样式(直尺 1 和直尺 2),可在画布上插入直尺,支持四边(上下左右)沿边缘画直线
  • 三角板工具:支持两种类型
    • 60°三角板(√3:1宽高比):基于30-60-90度直角三角形
    • 45°三角板(1:1宽高比):基于45-45-90度等腰直角三角形
  • 智能尺寸:教具按照图片原有比例插入,并自动缩放至画布面积的约20%
  • 沿边缘画线:三角板的三条边(上边、左边、斜边)均支持沿边缘画直线,可画出完整三角形
  • 自由绘图区:三角板的右下区域(斜边以下)允许用户自由绘图,不会触发单击和双击判定
  • 自由操作:支持拖动移动位置、旋转角度、调整大小
  • 缩放适配:教具在画布缩放后仍能正确移动、调整大小和显示,不会异常放大或位置偏移
  • Word风格控件:双击教具显示8个调整控制点(四角+四边)
  • 触控支持:支持双指缩放和旋转教具,不影响画布缩放
  • 多实例支持:可同时插入多把直尺和三角板
  • 双击控制:双击教具调出控制面板,方便调整
  • 独立数量控制:画布上当前数量按每种教具类型(直尺1、直尺2、三角板60°、三角板45°)分别显示和控制,分两排显示避免拥挤

🖊️ 笔触差异化

  • 普通笔:标准书写笔触,粗细一致
  • 圆珠笔:根据书写速度模拟压力,平滑的墨水流动效果
  • 毛笔:带有毛边效果和笔锋感觉,模拟真实毛笔书写体验,墨水晕染效果
  • 铅笔:灰色质感带颗粒纹理,模拟真实铅笔痕迹
  • 钢笔:优雅的变宽笔触,根据方向和速度变化线条粗细

📄 分页画布模式

  • 分页模式:支持多页管理,适合课堂演示和教学
    • 预设尺寸:A4、A3、B5(横向/竖向),16:9、4:3宽屏
    • 自定义尺寸:可自由设定画布宽高和比例
    • 画布自动居中:确保画布在浏览器窗口正中心,上下左右边距相等

🎯 智能交互体验

  • 选择工具:可选择和操作画布上的笔迹和图片,支持复制和删除
  • 移动画布:拖动工具或按住Shift键拖动画布
  • 智能缩放
    • 鼠标:Ctrl+滚轮缩放画布,缩放中心跟随鼠标位置
    • 触控:双指捏合缩放(支持在设置中开启/关闭),双击自动缩放/还原
    • 支持50%-无上限缩放范围
  • 初始画布大小:首次打开或刷新后,画布自动调整为浏览器窗口的80%大小
  • 撤销/重做:支持最多50步历史记录(Ctrl+Z / Ctrl+Y)
  • 全屏模式:专注创作,沉浸体验(F11)
  • 刷新保护:刷新页面时会弹出警告提示,防止误操作导致画布内容丢失

⏱️ 计时器功能

  • 正计时模式:支持设置起始时间,从指定时间开始计时
  • 倒计时模式:精确倒计时,适合考试、演讲等场景
  • 颜色自定义
    • 字体颜色选择:8种预设颜色 + 自定义颜色选择器
    • 背景颜色选择:8种预设颜色 + 自定义颜色选择器
    • 颜色设置应用于计时器显示和全屏模式
  • 提示音系统
    • 页面加载时预加载4种内置提示音,确保即时播放
    • 4种默认提示音排列成2行2列,选择更直观
    • 支持上传多个自定义音频文件
    • 自定义音频自动保存到本地,刷新后仍可使用
    • 自定义音频支持试听功能
  • 循环播放:支持设置循环播放次数(1-100次)
  • 拖动与全屏
    • 支持鼠标和触摸拖动定位,移动更流畅不卡顿
    • 网页内全屏显示,字体大小可调(10%-85%屏幕比例)
    • 标题字体大小固定,不受时间字体滑块影响
  • 最简显示模式
    • 点击"最简"按钮切换到仅显示时间的极简模式
    • 双击时间数字即可恢复完整控制面板,恢复后可正常拖动
  • 多实例支持:可同时创建多个独立计时器

🕐 时间显示功能

  • 时区支持:自动检测并显示用户当前时区的时间和日期
  • 灵活显示:可选择显示日期、时间或两者
  • 多种格式
    • 时间格式:12小时制/24小时制
    • 日期格式:年-月-日、月-日-年、日-月-年、中文格式
  • 全屏模式:支持单击或双击进入全屏时间显示
  • 自定义样式:字体颜色、背景颜色、透明度可调
  • 全屏自定义:全屏模式下支持独立的字体颜色、背景颜色和背景透明度设置

⚙️ 个性化设置

  • 界面定制:工具栏大小、属性栏缩放、主题色可调
  • 控制布局:控制按钮位置可选(四个角落),工具栏自动保持在窗口范围内
  • 边缘吸附:拖动面板自动吸附到屏幕边缘,避免画布留痕
  • 背景偏好:自定义属性栏中显示的背景图案
  • 设置分组:可折叠的设置组,默认展开状态,点击即可查看详细选项
  • 多语言支持
    • 支持中文简体、中文繁体、English、日本語、한국어、Français、Deutsch、Español
    • 自动检测浏览器语言
    • 在设置-通用中可随时切换语言
    • 切换语言后立即生效
  • 配置管理:支持导出当前配置为 JSON 文件,并在导入时智能对比差异,方便配置迁移和备份。

💾 数据管理

  • 点名器导入:支持从 .xlsx, .xls, .csv 文件导入名单,自动识别列名。
  • 导出功能:支持导出为PNG/JPEG图片
    • 导出当前页、全部页面或指定页面
    • 文件名自动包含用户当前时区的时间戳
    • 多页导出时自动添加页码后缀(例如:文件名-1, 文件名-2)
  • 自动保存与恢复
    • 使用 IndexedDB 技术,突破本地存储限制,支持保存大量高清画布内容
    • 自动保存所有页面的绘图内容、背景设置、工具状态和上传的图片
    • 刷新或重新打开页面时,会自动检测并询问是否恢复上次的会话内容
  • 多页管理:分页模式下支持多页切换和管理
    • 智能分页按钮:仅1页时显示"+"图标添加页面,多页时显示翻页箭头
    • 指定页面导出支持选择单页或多页

功能总结

目前Aboard已经能满足基本的批注和使用需求,我将分部分来介绍本项目实现的功能:

1.工具栏

这里是本项目的核心功能聚集地,和大部分软件一样,其默认出现在底部,但可以被自由拖动,靠边框能实现吸附,能随浏览器窗口底部自己移动(事实上,本项目的框体均具有以上属性,我认为还是很友好的)

工具栏中有最常见的功能:撤销重做、笔、移动画布、橡皮、清空、背景、更多功能和设置

撤销重做~~~~所见即所得,最多支持50步

~~~~支持随意画,可选择“笔触类型”(可能在大屏上有区别,我用笔记本写写画画感觉没啥区别qwq),笔的颜色、粗细,也支持了取色器取色

移动~~~~变成小手来移动画布

橡皮~~~~能擦除笔迹,可选择形状和大小

清空~~~~所见即所得,会清空画布的所有笔迹(目前看可以通过撤销来还原,但我仍然不建议尝试…..)

背景~~~~可选择背景颜色,支持取色器取色(可在设置--背景中调整背景的透明度啥的),支持设置背景图案,我设置了贴合中国课堂的常见背景需求,且背景是支持分页独立配置的!!!

选择后可调整密度,便于调整点/线间宽度,也可以自己上传图片作为背景,可通过蓝色边框控件来调整位置、大小、旋转角度,还支持水平/垂直翻转

更多~~~~小功能区,包含"时间"、"计时"、"点名器"、"计分板"和"插入图片"功能

插入图片~~~~可将图片插入到画布上,支持拖动调整位置、缩放大小、旋转以及水平/垂直翻转。插入的图片大小会自动限制在画布的一半以内

小功能这块,我觉得我做的挺好的🤣,也花费了很多时间来调试和补充设置相关功能,力求满足所有需求

设置~~~~一些更高级的选项就在设置中啦,您可以根据需求自行调节,让Aboard更高地为您服务

2.控制按钮区域

他们默认出现在右上角,设置中可以调整显示的位置~(在我的设定中,这些按钮的显示位置是固定的,无法被拖动)

下载按钮⏬~~~~是导出画布的功能,目前做的较为完善啦~~您可以自行探索

+/-和缩放比例~~~~用于调节画布大小,触控屏上支持双指缩放,和绝大多数软件逻辑相同,这里的加减和输入比例是为了方便更多用户

全屏按钮~~~~点一下会网页全屏,可沉浸式使用Aboard

翻页组件~~~~简单基本但细节满满,所见即所得

时间显示组件~~~~对应更多中的“时间”选项,默认开启来提醒老师时间,更多功能可在“时间显示选项”里的设置按钮里调节(这一块做的很用心哒)

赛博教具

功能目前实现的就这些,虽然看着不多,但每一块我都花了很多心思,写起来简单,使用起来也简单,唯独实现起来不简单,希望您能多多体验下啦!!!

具体的Bug统计和To-Do List请参见我的博客文章

🚀 快速开始

一键部署

部署到 Vercel

Deploy with Vercel

部署到 GitHub Pages

  1. Fork 本仓库到你的 GitHub 账号
  2. 进入仓库设置 (Settings)
  3. 在 Pages 选项中,选择 Source 为 main 分支
  4. 点击 Save,等待部署完成
  5. 访问 https://你的用户名.github.io/Aboard

部署到 Cloudflare Pages

Deploy to Cloudflare Pages

点击上方按钮即可快速部署到 Cloudflare Pages,享受赛博活佛的全球CDN加速。

本地服务器(不建议直接运行html文件)

如果需要完整功能(如加载公告),建议使用HTTP服务器运行:

# 使用Python
python3 -m http.server 8080

# 使用Node.js
npx http-server -p 8080

# 使用PHP
php -S localhost:8080

然后在浏览器访问 http://localhost:8080

📖 使用指南

基本操作

操作 方法
绘图 点击/触摸画布并拖动
选择工具 点击底部工具栏相应按钮
改变颜色/粗细 点击工具按钮,在弹出的属性面板中调节
撤销/重做 Ctrl+Z / Ctrl+Y 或点击右上角按钮
缩放画布 Ctrl+滚轮 或点击右上角缩放按钮(50%-无上限)
移动画布 点击"移动"工具或按住Shift键拖动
全屏 F11 或点击全屏按钮
清空画布 点击"清空"按钮(有确认提示)

高级功能

  • 拖动面板:所有控制面板(工具栏、属性栏、控制按钮)均可拖动调整位置
  • 图片背景:点击"背景" → 选择"图片" → 上传图片,可调整大小和位置
  • 选择操作:使用选择工具点击画布元素,可复制或删除
  • 分页管理:在设置中启用分页模式,使用右上角分页控件切换页面

🛠️ 技术实现

技术栈

  • HTML5 Canvas - 高性能2D图形渲染
  • Vanilla JavaScript - 无框架依赖,模块化架构
  • CSS3 - 现代化UI设计

核心特性

  • ✅ 实时低延迟渲染,目标60fps
  • ✅ 笔迹平滑算法,确保线条流畅
  • ✅ 同时支持鼠标和触控输入,优化大屏触控设备兼容性
  • ✅ 高DPI显示屏自适应
  • ✅ 响应式界面,适配不同屏幕尺寸
  • ✅ 本地存储自动保存
  • ✅ GPU加速渲染优化,提升性能
  • ✅ 触摸事件优化,支持多点触控拖动

性能优化

  • 按需加载 (Lazy Loading):对非首屏必需的模块(如计时器、导出等)实现延迟加载,减少初始加载时间
  • Canvas context的desynchronized模式减少渲染延迟
  • 单路径渲染减少绘制调用次数
  • 防抖处理窗口resize事件
  • 智能状态管理避免不必要的重绘
  • 使用requestAnimationFrame优化拖动和动画性能
  • 事件监听器按需添加/移除,减少内存占用
  • CSS will-change属性优化拖动元素性能
  • 触摸事件使用passive和non-passive模式优化

浏览器兼容性

浏览器 支持情况
Chrome ✅ 最新版本
Safari ✅ 最新版本
Firefox ✅ 最新版本
Edge ✅ 最新版本
iOS Safari ✅ 支持
Chrome Mobile ✅ 支持

📁 项目结构

Aboard/
├── index.html              # 主HTML文件
├── LICENSE                 # MIT许可证文件
├── package.json            # 项目配置文件
├── announcements.json      # 公告内容配置
├── css/
│   ├── style.css          # 主样式表
│   └── modules/           # 模块化样式
│       ├── timer.css      # 计时器样式
│       ├── time-display.css # 时间显示样式
│       ├── export.css     # 导出功能样式
│       ├── feature-area.css # 功能区样式
│       ├── teaching-tools.css # 教具功能样式
│       ├── shape.css      # 形状工具样式
│       ├── line-style-modal.css # 线条样式设置弹窗样式
│       ├── random-picker.css # 点名器样式
│       ├── scoreboard.css # 计分板样式
│       ├── insert-image.css # 插入图片样式
│       ├── toast.css      # 消息提示样式
│       └── diff.css       # 设置对比样式
├── js/
│   ├── main.js            # 主应用入口
│   ├── drawing.js         # 绘图引擎模块
│   ├── history.js         # 历史记录管理模块
│   ├── background.js      # 背景管理模块
│   ├── image-controls.js  # 图片控制模块(背景图片编辑,支持翻转)
│   ├── insert-image.js    # 插入图片模块(画布贴图功能,支持翻转)
│   ├── stroke-controls.js # 笔迹控制模块
│   ├── selection.js       # 选择工具模块
│   ├── announcement.js    # 公告管理模块
│   ├── export.js          # 导出功能模块
│   ├── time-display.js    # 时间显示模块
│   ├── collapsible.js     # 可折叠面板模块
│   ├── shape-insertion.js # 形状插入模块
│   ├── text-insertion.js  # 文本插入模块
│   ├── libs/              # 第三方库
│   │   └── xlsx.full.min.js # Excel文件处理库
│   ├── locales/           # 国际化语言文件
│   │   ├── zh-CN.js       # 简体中文
│   │   ├── zh-TW.js       # 繁体中文
│   │   ├── en-US.js       # 英文
│   │   ├── ja-JP.js       # 日语
│   │   ├── ko-KR.js       # 韩语
│   │   ├── fr-FR.js       # 法语
│   │   ├── de-DE.js       # 德语
│   │   ├── es-ES.js       # 西班牙语
│   │   └── help/          # 帮助内容翻译
│   │       ├── zh-CN.js   # 简体中文帮助
│   │       ├── zh-TW.js   # 繁体中文帮助
│   │       ├── en-US.js   # 英文帮助
│   │       ├── ja-JP.js   # 日语帮助
│   │       ├── ko-KR.js   # 韩语帮助
│   │       ├── fr-FR.js   # 法语帮助
│   │       ├── de-DE.js   # 德语帮助
│   │       └── es-ES.js   # 西班牙语帮助
│   └── modules/           # 功能模块
│       ├── timer.js       # 计时器模块
│       ├── time-display-controls.js # 时间显示控制
│       ├── time-display-settings.js # 时间显示设置
│       ├── edge-drawing.js # 边缘绘制模块(沿教具边缘画线)
│       ├── teaching-tools.js # 教具功能模块
│       ├── shape-drawing.js # 形状绘制模块(支持直线、矩形、圆形)
│       ├── random-picker.js # 点名器模块
│       ├── scoreboard.js  # 计分板模块
│       ├── settings-manager.js # 设置管理模块
│       ├── toast-manager.js # 消息提示模块
│       ├── line-style-modal.js # 线条样式设置弹窗模块
│       ├── i18n.js        # 国际化核心模块
│       ├── help-system.js # 帮助系统模块
│       ├── browser-check.js # 浏览器兼容性检查
│       ├── gif-manager.js # GIF动图管理模块
│       ├── libgif.js      # GIF解析库
│       ├── storage-manager.js # 存储管理模块
│       └── project-manager.js # 项目管理模块
├── img/                    # 图片资源目录
│   ├── ruler_1.png        # 直尺样式1
│   ├── ruler_2.png        # 直尺样式2
│   ├── set_square_1.png   # 60°三角板(√3:1宽高比)
│   └── set_square_2.png   # 45°三角板(1:1宽高比)
├── public/                 # 公开文档目录
│   ├── README.en.md       # 英文版README
│   └── README.zh-TW.md    # 繁体中文版README
├── sounds/                 # 提示音文件夹
│   ├── class-bell.MP3     # 上课铃声
│   ├── exam-end.MP3       # 考试结束音
│   ├── gentle-alarm.MP3   # 柔和提示音
│   ├── digital-beep.MP3   # 数字提示音
│   └── README.md          # 音频文件说明
├── tests/                  # 测试文件夹
│   └── manual/            # 手动测试
│       └── verify_architecture.spec.js
└── README.md              # 项目文档(简体中文)

🏗️ 架构设计

模块化架构

项目采用面向对象的模块化设计,各功能模块职责清晰:

  • DrawingEngine - 核心绘图引擎,处理所有绘图操作和笔触类型
  • ShapeDrawingManager - 形状绘制管理,处理直线、矩形、圆形等几何形状的绘制
  • LineStyleModal - 线条样式设置弹窗,提供独立的线条样式配置界面
  • HistoryManager - 历史记录管理,实现撤销/重做功能
  • BackgroundManager - 背景管理,处理背景颜色、图案渲染,支持可移动的坐标系原点
  • SelectionManager - 选择管理,处理元素选择和操作
  • SettingsManager - 设置管理,持久化用户偏好
  • AnnouncementManager - 公告管理,处理首次访问提示
  • TimerManager - 计时器管理,支持多实例计时器
  • TimeDisplayManager - 时间显示管理,处理日期时间显示
  • ExportManager - 导出管理,处理画布导出功能
  • TeachingToolsManager - 教具管理,处理直尺和三角板的插入、移动、旋转和缩放
  • EdgeDrawingManager - 边缘绘制管理,处理沿教具边缘画线功能
  • RandomPickerManager - 点名器管理,处理点名器逻辑
  • ScoreboardManager - 计分板管理,处理计分功能
  • InsertImageManager - 插入图片管理,处理画布贴图功能,支持翻转
  • ImageControls - 图片控制,处理背景图片的编辑和翻转
  • DrawingBoard - 主应用类,集成所有模块并协调交互
  • StorageManager - 存储管理,使用 IndexedDB 处理大容量数据存储
  • ProjectManager - 项目管理,处理项目的导入导出
  • ToastManager - 消息提示,提供统一的 UI 反馈

性能优化

  • Canvas context的desynchronized模式减少渲染延迟
  • 单路径渲染减少绘制调用次数
  • 防抖处理窗口resize事件
  • 智能状态管理避免不必要的重绘
  • 使用requestAnimationFrame优化拖动和动画性能
  • 事件监听器按需添加/移除,减少内存占用
  • CSS will-change属性优化拖动元素GPU加速
  • 触摸事件优化,提升大屏触控设备响应速度

安全与用户体验

  • 拖动面板时自动禁用绘图,避免误操作
  • 窗口调整后智能重新定位面板
  • 全屏模式使用标准浏览器API,支持ESC退出
  • 音频播放使用HTML5 Audio元素,避免Web Audio API复杂性
  • 工具栏属性面板默认定位优化,位于工具栏上方更方便操作
  • 时间显示选项面板使用精确的inset定位,避免位置偏移
  • checkbox标签宽度优化,避免占用过多横向空间
  • 计时器标题字体独立控制,不受时间字体大小滑块影响
  • 所有可拖动面板统一支持触摸和鼠标操作

🤝 贡献指南

欢迎提交Issue和Pull Request!

  1. Fork本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启Pull Request

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

🌟 致谢

感谢所有贡献者和使用者!如果这个项目对您有帮助,欢迎给个Star⭐,这样就对我很有帮助了

Star History

Star History Chart


Made with ❤️ for educators and creators

About

一个简约的web白板,更适合老师体质 | Just a board.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 81.6%
  • HTML 9.4%
  • CSS 9.0%