前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Fabric.js 让用户手动加粗文本

Fabric.js 让用户手动加粗文本

作者头像
德育处主任
发布2022-09-23 09:52:50
3.5K0
发布2022-09-23 09:52:50
举报
文章被收录于专栏:前端数据可视化

本文简介

点赞 + 关注 + 收藏 = 学会了

本文介绍 Fabric.jsIText 在画布上如何让用户手动加粗文本。

效果如图所示:

要实现2种操作

  1. 全文加粗
  2. 只加粗选中的文字

如果你还不清楚 Fabric.js 有什么用,我强烈推荐你阅读 《Fabric.js 从入门到目中无人》 。该文能让你的前端技术再点亮一个技能点。

全文加粗

只需把 ITextfontWeight 属性设置成 bold 即可实现加粗。

如果想变回默认样式,可以将 fontWeight 设为 normal

修改完文字样式后,需要执行 canvas.renderAll() 重新渲染一下画布内容。

代码语言:javascript
复制
<button onclick="bold()">加粗</button>
<canvas id="c2" width="250" height="300" style="border: 1px solid #ccc"></canvas>

<!-- 引入fabric.js -->
<script src="js/fabric.js"></script>
<script>
  // 创建画布
  const canvas = new fabric.Canvas('c2')

  // 创建文本
  const iText = new fabric.IText('hello world')
  canvas.add(iText)

  function bold() {
    // 当前选中的元素
    let activeTxt = canvas.getActiveObject()

    // 只有选中文本才执行以下操作
    if (activeTxt) {
      activeTxt.fontWeight = 'bold' // 将字体加粗
      canvas.renderAll() // 重新渲染画布
    }
  }
</script>

加粗选中的文字

可以用 setSelectionStyles 设置被选中的文字样式,里面传一个样式对象即可。

代码语言:javascript
复制
<button onclick="bold()">加粗</button>
<canvas id="c2" width="250" height="300" style="border: 1px solid #ccc"></canvas>

<!-- 引入fabric.js -->
<script src="js/fabric.js"></script>
<script>
  // 创建画布
  const canvas = new fabric.Canvas('c2')

  // 创建文本
  const iText = new fabric.IText('hello world')
  canvas.add(iText)

  function bold() {
    // 当前选中的元素
    let activeTxt = canvas.getActiveObject()
    if (activeTxt) {
      activeTxt.setSelectionStyles({ 'fontWeight': 'bold' }) // 设置选中文字的样式
      canvas.renderAll() // 重新渲染画布
    }
  }
</script>

仓库

推荐阅读

文章

简介

《Fabric.js 橡皮擦的用法(包含恢复功能)》

橡皮擦需要下载一个工具包,详情可参考该文。

《Fabric.js 基础画笔的用法 BaseBrush》

画笔的基础用法

《Fabric.js 自由绘制圆形》

将“框选”动作改造成自由绘制圆形

《Fabric.js 3个api设置画布宽高》

宽高设置并不是在初始化是才能进行的,本文介绍3种方法设置画布宽高,让你的画布更容易适配不同的使用场景

《Fabric.js 更换图片的3种方法(包括更换分组内的图片,以及存在缓存的情况)》

如果你的项目需要动态更换画布上的图片,那我也给你总结了3中方法

《Fabric.js 摆正元素的4种方法(带过渡动画)》

一键摆正被你旋转过的元素

《Fabric.js 将本地图像上传到画布背景》

除了在初始化时设置画布背景外,我还做了本地上传背景的功能,让画布在运行时也能修改背景图

《在 Vue3中使用Fabric.js实现渐变(Gradient)效果,包括径向渐变radial》

官方入门教程也只有线性渐变,以至于某些文章说 Fabric.js 只支持线性渐变。但其实径向渐变也完全支持

《Fabric.js 从入门到目中无人》

Fabric.js 入门指南,学完能应付简单业务

《Fabric.js 右键菜单》

Fabric.js 暂时还没右键事件,如果你想实现右键菜单的功能,可直接复制该文章的代码~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文简介
  • 全文加粗
  • 加粗选中的文字
  • 仓库
  • 推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档