Fabric.js|Fabric.js 上划线、中划线(删除线)、下划线
本文简介
点赞 + 关注 + 收藏 = 学会了
在 HTML
也好,Word
也好,基本都有下划线和删除线(中划线)。
Fabric.js
作为一个老牌 canvas
库,当然也提供中划线和下划线的配置啦,除此之外还提供了上划线的配置。
文章图片
本文要讲解的就是这3种装饰线在 fabric.js
中的使用方法。除了初始化配置外,还支持项目运行时,让用户动态配置。
本文案例使用了 IText
,该组件支持编辑功能。
【Fabric.js|Fabric.js 上划线、中划线(删除线)、下划线】
初始化时设置
这是上划线、中划线和下划线的文档:
- 上划线 overline
- 中划线 linethrough
- 下划线 underline
文章图片
本例只有3个字母
a
,而且都在同一行。styles
第一个元素的 key
为 0
的意思是第一行,行号下标从0开始。大概这个意思
styles: {
0: { // 第1行
0:, // 第1行 第1个字
1:, // 第1行 第2个字
2:// 第1行 第3个字
}
}
如果需要换行,那就要根据行号来定义了。换行的方法是文本内容里使用
\n
做换行。动态设置 除了在初始化时可以设置装饰线外,
Fabric.js
也提供了在运行时用户手动设置。不过代码会稍微复杂一点。其实动态设置上划线、中划线和下划线的操作都是一样的,唯一要变的就是属性名。
我以中划线为例,之后上划线和下划线只需改个属性名。
文章图片
上面的代码主要做这几步操作:
- 初始化画布
- 创建文字
- 将文字添加到画布中
linethrough
方法添加或取消中划线
最主要的操作逻辑写在
linethrough
方法里了。linethrough
的逻辑如下- 获取当前选中的文字
- 如果没选中就不做任何操作
- 如果选中了,判断是否进入编辑状态
- 编辑状态
- 获取当前被选中文字的中划线状态
- 如果被选中文字设置了中划线,就把中划线取消掉
- 如果被选中文字没设置中划线,就添加中划线
- 如果不是编辑状态,只是单击了
iText
进入框选状态
- 如果需要全局取消中划线
- 全局取消
- 循环每个字符,并取消每个字符的中划线
- 需要全局设置中划线
- 全局设置
- 再逐个字符单独设置
- 如果需要全局取消中划线
- 重新渲染画布
代码仓库 ?IText 动态设置装饰线
推荐阅读 《Fabric.js 动态设置字号大小 》
《Fabric.js 激活输入框》
《Fabric.js 输出精简的JSON》
《这18个网站能让你的页面背景炫酷起来》
点赞 + 关注 + 收藏 = 学会了
推荐阅读
- Fabric.js|Fabric.js 手动加粗文本iText
- Fabric.js|Fabric.js 控制元素层级
- Fabric.js|Fabric.js IText 手动设置斜体
- Fabric.js|Fabric.js 动态设置字号大小
- 为|为 Serverless Devs 插上 Terraform 的翅膀,解耦代码和基础设施,实现企业级多环境部署(下)
- 投稿|天齐锂业再度赴港上市,特斯拉参与IPO认购?
- 汽车|东安动力涨停 | 6月22日汽车产业链企业上市公司(部分)股价日报
- 汽车|客车版块涨超 10% | 6月22日汽车制造企业上市公司股价日报
- 抢先报名丨新一代 HTAP 数据库如何在云上重塑(TiDB V6 线上发布会即将揭晓!)
- 钛媒体·双碳观察|欧阳明高:稳健的供需体系和智能回收体系是应对上游电池材料价格波动的关键|双碳观察