news 2026/8/28 12:36:06

react-rough-notation的RoughNotationGroup分组标注:逐个播放动画与自定义顺序完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
react-rough-notation的RoughNotationGroup分组标注:逐个播放动画与自定义顺序完全指南

react-rough-notation的RoughNotationGroup分组标注:逐个播放动画与自定义顺序完全指南

【免费下载链接】react-rough-notationReact wrapper for rough-notation项目地址: https://gitcode.com/gh_mirrors/re/react-rough-notation

react-rough-notation 是一款为 rough-notation 手绘标注库打造的 React 封装组件库。它的 RoughNotationGroup 分组组件可以让多个标注动画逐个播放,并通过 order 属性自定义播放顺序。本文是一份面向新手的完整指南,帮你快速上手分组标注动画。

📦 快速上手:安装 react-rough-notation 与引入两个核心组件

一行命令安装依赖:

npm install --save react-rough-notation

然后按需引入:

import { RoughNotation, RoughNotationGroup } from 'react-rough-notation'

库中只有两个核心组件:

组件作用
RoughNotation给单个元素加手绘标注(下划线、框、圈、荧光笔等),默认渲染为span
RoughNotationGroup分组容器,统一控制多个标注的播放时机,不渲染任何 HTML 元素,不影响布局

对应源码可参考 RoughNotation.tsx 与 RoughNotationGroup.tsx。

🎬 逐个播放动画:一个 show 属性驱动整组标注

把多个RoughNotation包进RoughNotationGroup,再用一个show状态控制整组:

<RoughNotationGroup show={state.show}> <RoughNotation type="underline">Hello,</RoughNotation> <RoughNotation type="underline">This is</RoughNotation> <RoughNotation type="underline">a Test</RoughNotation> </RoughNotationGroup>

播放原理show变为true后,分组会按顺序逐个触发子标注的show()——上一个标注动画播放完(时长取其animationDuration,默认 800ms),下一个才自动开始,形成流畅的"依次点亮"效果。当show变回false时,整组标注立即隐藏,未执行的定时器也会被清空。

这段定时链逻辑就写在 RoughNotationGroup.tsx 中,想看懂实现的同学可以直接阅读源码。

🚦 自定义顺序:用 order 属性决定谁先谁后

默认情况下标注按书写顺序播放。如果想改变先后(例如从右往左依次划线),给每个子组件加上order即可:

<RoughNotationGroup show={state.show}> <RoughNotation type="underline" order={3}>Hello,</RoughNotation> <RoughNotation type="underline" order={2}>This is</RoughNotation> <RoughNotation type="underline" order={1}>a Test</RoughNotation> </RoughNotationGroup>

三条关键规则:

  • 🥇数字越小越先播:上面的例子会先画 "a Test",再画 "This is",最后画 "Hello,"
  • 🔢字符串也可以order="1"会被源码自动parseInt成数字,详见 RoughNotation.tsx
  • 🧩支持混用:带order的标注按数值排序先播,不带order的排在后面、按书写顺序补上

排序发生在分组的 reducer 里,完整实现见 RoughNotationGroup.tsx。

⚙️ 常用属性速查表

属性归属说明
show分组 / 单个是否显示标注;分组上控制整组播放
order单个组内播放顺序,数字越小越先播
animationDuration单个动画时长(ms),默认 800,也决定组内两个标注之间的间隔
animationDelay单个动画开始前的延迟(ms),默认 0
type单个标注样式:underlineboxcirclehighlightstrike-throughcrossed-offbracket
color/strokeWidth/padding/iterations单个标注颜色、线条粗细、间距、笔画迭代次数

其中colorstrokeWidthpadding等属性修改后无需重建标注即可生效,非常适合做主题切换。完整属性类型定义见 RoughNotation/types.ts。

🔍 源码揭秘:分组是如何排序和定时播放的

只需三步就能理解整个机制:

  1. 自动注册:每个RoughNotation挂载时通过useGroupContext()把自己和order值上报给分组上下文(RoughNotationGroup.tsx)
  2. 自动排序:分组的 reducer 把标注拆成"带 order"和"不带 order"两组,前者按order数值升序排列,再拼接成最终播放队列
  3. 定时链播放showtrue时,分组用setTimeout逐个排程,每个间隔取该标注自己的animationDuration(未设置则按 800ms 计),实现严格的逐个播放

💡 实用技巧与注意事项

  • ⏸️ 播放中途把show设为false可立即隐藏全部标注并清空未完成定时器,天然适合做"停止 / 重置"按钮
  • 🎞️ 想让播放节奏更快,调小各标注的animationDuration;想要错落感,可给不同标注设置不同的animationDelay
  • 🔁 重新播放动画很简单:把show先置false再置true即可重播整组
  • 📐 分组组件不产生任何 DOM,可以放心包裹块级内容,不用担心布局被撑乱

✅ 小结

react-rough-notation 的RoughNotationGroup仅靠showorder两个属性,就实现了"逐个播放动画 + 自定义顺序"的完整能力;配合 7 种手绘标注样式,你可以快速做出富有表现力的页面强调效果。更多属性细节可在 README.md 的文档章节中查阅,动手试一试吧!

【免费下载链接】react-rough-notationReact wrapper for rough-notation项目地址: https://gitcode.com/gh_mirrors/re/react-rough-notation

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 12:35:39

双非学子保研浙大软院:末位逆袭的策略、面试与实战复盘

1. 项目概述&#xff1a;一场关于“末位”的逆袭 “双非”、“末位”、“上车”&#xff0c;这几个词组合在一起&#xff0c;对于经历过保研季的同学来说&#xff0c;每一个都像是一块沉重的石头。当它们同时出现在我的经历里时&#xff0c;那种在悬崖边反复试探、最终抓住最后…

作者头像 李华
网站建设 2026/8/28 12:33:18

蓝桥杯国赛全攻略:从算法核心到实战技巧的深度解析

1. 从“省赛”到“国赛”&#xff1a;一次认知的全面升级如果你刚刚在省赛中取得了不错的成绩&#xff0c;正摩拳擦掌准备冲击国赛&#xff0c;或者你是一名初次参赛的选手&#xff0c;想了解国赛的真实面貌&#xff0c;那么这篇文章就是为你准备的。我参加过不止一届蓝桥杯&am…

作者头像 李华
网站建设 2026/8/28 12:30:23

AI谎言检测器实践:难点不在模型,而在数据与评估

Aletheias Quest 是我折腾过的一个 AI 应用项目&#xff0c;目标很直白&#xff1a;用大模型和多媒体分析做一个“谎言检测器”。一轮完整回顾做下来&#xff0c;我的核心判断是&#xff1a;这个方向的难点根本不在模型选型&#xff0c;也不在算力&#xff0c;而在数据、评估和…

作者头像 李华
网站建设 2026/8/28 12:30:06

时间序列与灰色预测实战:从GM(1,1)原理到Python实现与避坑指南

1. 项目概述&#xff1a;从“算命”到“算数”的预测艺术刚接触数学建模那会儿&#xff0c;一听到“时间序列预测”和“灰色预测”&#xff0c;总觉得这玩意儿有点玄乎&#xff0c;像是给数据“算命”。后来自己亲手用Python跑通了几个模型&#xff0c;看着那些原本杂乱无章的销…

作者头像 李华
网站建设 2026/8/28 12:29:09

65亿融资背后:智能驾驶、大模型与机器人的技术栈解析

何小鹏又拿到了65亿。如果只看数字&#xff0c;这是一条典型的融资快讯&#xff1b;但如果把65亿放进技术路线图里看&#xff0c;它其实是智能驾驶、AI大模型、机器人和飞行汽车四条产品线的研发倒计时。对 CSDN 读者来说&#xff0c;重点不是“谁投了钱”&#xff0c;而是“钱…

作者头像 李华