当前位置:网站首页>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 锁定背景图,不受缩放和拖拽的影响》点赞 + 关注 + 收藏 = 学会了
边栏推荐
- 嵌入式系统驱动初级【2】——字符设备驱动基础上_基础框架
- 水平垂直居中方式
- 节省50%成本!京东云重磅发布新一代混合CDN产品
- RISC-V 指令格式和6种基本整数指令
- Mysql index details (with pictures and texts)
- Openlayers Quick Start Tutorial
- 供应磷脂-聚乙二醇-羧基,DSPE-PEG-COOH,DSPE-PEG-Acid,MW:5000
- Automatically generate code generator recommendation-code-gen
- Name conventions in FreeRTOS
- Taurus.MVC V3.0.3 microservice open source framework released: Make the evolution of .NET architecture easier in large concurrency.
猜你喜欢
随机推荐
[C language] Analysis of function recursion (1)
80篇国产数据库实操文档汇总(含TiDB、达梦、openGauss等)
自媒体创作怎样提高原创度,打造爆款作品?
RISC-V instruction format and 6 basic integer instructions
How to turn off hardware acceleration [easy to understand]
路由-嵌套路由
How to use the database like tap water?|Tencent Cloud Database TDSQL-C
js array recursively use
package.json and package-lock.json
图论之Floyd,多源图最短路如何暴力美学?
【622. 设计循环队列】
单例模式的七种写法,你都知道吗?
【C语言】手撕循环结构 —— for语句
Win11怎么修改关机界面颜色?Win11修改关机界面颜色的方法
智能手表前景如何?
麻烦问一下,对mysql 场景注入故障,是不是不是对mysql server 端注入故障,只是对ja
使用Amazon SageMaker 构建基于自然语言处理的文本摘要应用
Seata Distributed Transaction
基于flask商城的管理员功能
wx-wow(微信小程序动效库)









