给你的网页文字注入灵魂:轻量级手写笔画动画库 StrokeOrder.js 正式发布!

48 阅读3分钟

JHCWColin/stroke-order.js: A third-party JavaScript library that writes English text into the DOM following stroke order, creating a handwriting-like effect while using a printed (non-cursive) font.

一、 为什么要做这个库?StrokeOrder.js 是什么?

在现代 Web UI 设计中,动态效果往往是提升视觉高级感的关键。我们见过很多位图动画或复杂的 SVG 动画,但在处理文本动态生长,尤其是模拟真实手写感的笔画顺序时,现有的工具要么过于臃肿(依赖大型框架),要么配置过于繁琐。

我是一个刚学习 Web 技术差不多刚一年的业余开发者,并不专业。但我喜欢网页设计,美观化,喜欢 Tailwind CSS 那样的声明式 CSS 库的简洁高效。于是我用一个周的时开发了轻量化的 js 库,通过绘制笔画的方式为文字加入类似手写的动画!是的,它与现存任何字体无关,它是通过纯 Canvas 的方式来勾勒每一个笔画,通过直线的起始点、终点坐标,或椭圆的标准方程、角度范围来规定笔画参数。

例如,在库的源代码中,我通过这种方式定义了A的三个笔画的参数:

A: {width: 500, 
    anchorX: 180, 
    strokes: [
        { type: 'line', x1: 220, y1: 800, x2: 460, y2: 200, extY1: 850, extY2: 150 }, 
        { type: 'line', x1: 460, y1: 200, x2: 700, y2: 800, extY1: 150, extY2: 850 }, 
        { type: 'line', x1: 340, y1: 550, x2: 580, y2: 550 }
    ]
    },

这是最基础的line线型,其实还有ellipsefastline这两种线性,在字母B中这三种线型都可以看到。这也给了开发者很高的自定义性。若你不喜欢默认的笔画参数,可以直接修改参数。甚至可以自定义不受支持的文字、图标等一切

三、 核心亮点

  • ⚡️ 极简集成:无需配置复杂的 JS 逻辑,只需引入该 js 库以后在 HTML 标签上添加一个 class 和若干 data- 属性,即可完成所有视觉调优。
  • 🎨 动感逻辑:支持顺序绘制(还原书写过程)与异步并行(极具现代感的线条生长)两种模式。
  • 📱 极致清晰:针对移动端和 Retina 屏幕做了原生优化,自动适配 devicePixelRatio,拒绝锯齿。
  • 🖋 物理质感:内置缓动算法(Easing),支持模拟书写时的起笔加速与收笔减速。

四、 视觉演示

通过简单的属性组合,你可以轻松实现如下效果:

  1. 优雅慢速模式:适合品牌 Slogan 的展示,丝滑且克制。
  2. 异步绘制模式:开启 data-async="true",让所有线条如极光般同步迸发。

五、 简单预览

虽然详细用法在我的 GitHub 仓库中,但这里可以先看看它有多简单:

<h1 class="stroke-order-in" 
    data-font-size="150" 
    data-speed="faster" 
    data-async="true" 
    data-ease-out="true">
    HELLO WORLD
</h1>

只需这一段 HTML,你的网页标题就能“动起来”。

六、 未来计划

目前第一个 Release 版本主要针对 A-Z 大写英文字母进行了字形建模。未来我计划:

  • 扩展对数字及常用标点符号的支持。
  • 增加更多的笔画风格(如毛笔质感)。
  • 提供更多预设的缓动曲线。

七、 结语

技术不应该是冰冷的,文字的呈现也可以充满生命力。如果你也喜欢这种带有“呼吸感”的视觉设计,欢迎在 GitHub 上关注这个项目,或者在评论区分享你的建议!


项目地址:[JHCWColin/stroke-order.js: A third-party JavaScript library that writes English text into the DOM following stroke order, creating a handwriting-like effect while using a printed (non-cursive) font.]

文档手册:[github.com/JHCWColin/s…]

如果你觉得这个库对你有启发,记得点个赞哦!