当前位置:网站首页>Fabric.js 动态设置字号大小
Fabric.js 动态设置字号大小
2022-08-02 13:17:00 【51CTO】
点赞 + 关注 + 收藏 = 学会了
本文使用 Fabric.js
的 IText
演示。如果你还不懂 Fabric.js
,我墙裂推荐你阅读 《Fabric.js从入门到精通》。
一图胜千言,先看看图我们再写作文~
分析
需求
从上图可以看出以下功能需求:
- 文本被选中后才能修改字号
- 整体修改字号
- 修改被选中的几个字的字号,没被选中的不进行修改
解决思路
- 获取被选中的文字:
canvas.getActiveObject()
。 - 是否只选中一部分文字:
- 我通过编辑状态来判断是否只选中一部分文字:
isEditing
。 - 修改被选中文字的样式:
setSelectionStyles({...})
。
- 我通过编辑状态来判断是否只选中一部分文字:
- 修改
fontSize
属性。 - 如果是全文修改,还要判断是否有些字符在自身设置了
fontSize
,如果文字自己设置了fontSize
,那全文设置的权重没独立设置的那么高。
编码
使用 isEditing
判断当前是否进入编辑状态,我是根据编辑状态下是否有选中文字来修改字号大小的。
最后有2层循环:
第一层循环 i
是行数的遍历;第二层循环 j
是当前行的文字的遍历。
这么做是因为如果只使用 setSelectionStyles
设置字号大小是无法覆盖每个字本身被设置的 fontSize
。所以还是需要循环一遍,保证每个字都修改到位。
设置字号大小的例子还可以用在上标和下标里,比如 《Fabric.js 上标和下标的使用偏方》 一文中的用法。上标和小标适应用在合在数学公式和化学符号等场景。
代码仓库
推荐阅读
《Fabric.js 锁定背景图,不受缩放和拖拽的影响》点赞 + 关注 + 收藏 = 学会了
边栏推荐
猜你喜欢
随机推荐
【C语言】虐打循环练习题(2)
C语言结构体(入门)
GCC版本升级到指定版本
MFC入门教程(深入浅出MFC)
selenium chrome driver运行时的cannot determine loading status from target frame detached问题
最小割和对偶图(未完成)
Four seasons of trees realized by svg
qt 编译报错 No rule to make target
Wireless vibrating wire acquisition instrument remote modification method
Seata分布式事务
How to use the database like tap water?|Tencent Cloud Database TDSQL-C
ThinkPHP 5.1反序列化分析和poc
[b01lers2020]Welcome to Earth-1
Detailed explanation of network flow (what information can the flow network diagram generally reflect)
First acquaintance of scrapy framework 1
Article 48 - Analysis of timestamp2 parameters【2022-08-01】
二叉树的类型、构建、遍历、操作
【C语言】夏日一题 —— 求最大公约数和最小公倍数
Singleton pattern of seven kinds of writing, you know?
Do you know Dijkstra of graph theory?