当前位置:网站首页>Tissu. JS définit dynamiquement la taille de la police
Tissu. JS définit dynamiquement la taille de la police
2022-06-11 09:11:00 【InfoQ】
Introduction à cet article
Fabric.jsITextFabric.js
Analyse
- La taille de la police ne peut être modifiée tant que le texte n'est pas sélectionné
- Modifier la taille globale de la police
- Modifier la taille de police des mots sélectionnés,Ne pas modifier ceux qui ne sont pas sélectionnés
- Obtenir le texte sélectionné:
canvas.getActiveObject().
- Si seule une partie du texte est sélectionnée:
- Je détermine si seule une partie du texte est sélectionnée en éditant l'état:
isEditing.
- Modifier le style du texte sélectionné:
setSelectionStyles({...}).
- Modifier
fontSizePropriétés.
- En cas de modification du texte intégral,Et si certains caractères sont définis par eux - mêmes
fontSize,Si le texte lui - même est définifontSize,Le poids du texte intégral n'est pas aussi élevé que celui du texte autonome.
Codage
<input type="range" min="5" max="150" value="40" id="size" onchange="changeSize(value)">
<canvas id="c" width="300" height="300" style="border: 1px solid #ccc"></canvas>
<script src="https://cdn.bootcdn.net/ajax/libs/fabric.js/521/fabric.js"></script>
<script>
const canvas = new fabric.Canvas('c')
const iText = new fabric.IText('hello world')
canvas.add(iText)
function changeSize(value) {
let activeTxt = canvas.getActiveObject()
if (!activeTxt) return
if (activeTxt.isEditing) {
// Modifier l'état
activeTxt.setSelectionStyles({ 'fontSize': value})
} else {
activeTxt.fontSize = value
let s = activeTxt.styles
// Traverser les lignes et les colonnes
for(let i in s) {
for (let j in s[i]) {
s[i][j].fontSize = value // Définir la taille de la police pour chaque mot
}
}
activeTxt.dirty = true
}
canvas.renderAll()
}
</script>
isEditingfor(let i in s) {
for (let j in s[i]) {
s[i][j].fontSize = value
}
}
ijsetSelectionStylesfontSizeEntrepôt de code
边栏推荐
- 1721. 交换链表中的节点
- 445. 两数相加 II
- 1400. 构造 K 个回文字符串
- Sword finger offer 06 Print linked list from end to end
- 2130. 链表最大孪生和
- 矩阵求逆操作的复杂度分析(逆矩阵的复杂度分析)
- [intelligent development] scheme design and hardware development of sphygmomanometer
- 山东大学项目实训(四)—— 微信小程序扫描web端二维码实现web端登录
- 机器学习笔记 - Kaggle大师Janio Martinez Bachmann的故事
- 面試題 02.02. 返回倒數第 k 個節點
猜你喜欢

C language printing diamond

File system check of the root filesystem failed

Blinn Phong reflection model

报错Output image is bigger(1228800B) than maximum frame size specified in properties(1048576B)

OpenCV OAK相机对比及介绍

【新手上路常见问答】关于数据可视化

OpenCV CEO教你用OAK(四):创建复杂的管道

Talk about reading the source code

报错Version mismatch between installed depthai lib and the required one by the scrip.

Complexity analysis of matrix inversion operation (complexity analysis of inverse matrix)
随机推荐
Pytorch installation for getting started with deep learning
Vagrant mounting pit
Comment l'entreprise planifie - t - elle la mise en oeuvre?
[intelligent development] scheme design and hardware development of sphygmomanometer
Machine learning notes - convolutional neural network memo list
206. reverse linked list
【软件】大企业ERP选型的方法
2161. 根据给定数字划分数组
Install jupyter in the specified environment
Port occupancy problem, 10000 ports
机器学习笔记 - Kaggle大师Janio Martinez Bachmann的故事
PHP solves Chinese display garbled code
83. 删除排序链表中的重复元素
Printf correlation of C
Pulsar job Plaza | Tencent, Huawei cloud, shrimp skin, Zhong'an insurance, streamnational and other hot jobs
typescript高阶特性一 —— 合并类型(&)
Some learning records I=
【服装ERP】施行在项目中的重要性
Kubelet error getting node help
SAP ABAP internal table classification, addition, deletion, modification and query