前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Fabric.js 激活输入框🎈

Fabric.js 激活输入框🎈

作者头像
德育处主任
发布2022-06-10 15:25:37
5.9K0
发布2022-06-10 15:25:37
举报
文章被收录于专栏:前端数据可视化

HTML 中,input 输入框有2种方法自动聚焦,最简单的是在 input 标签上添加 autofocus 属性。

再次点的方法是使用 JS 获取输入框元素,再调用 focus 事件选中输入框。

Fabric.js 中,IText 组件也提供了类似的方法。

实操

Fabric.jsIText 是一个可编辑文本框,可以在项目运行时输入文字,功能其实和 HTMLinput 差不多,都是可以让用户输入。

默认情况

Fabric.js 中,如果在创建 IText 时没有添加文字,在画布上你是很难用肉眼观察出你的输入框在哪的。

01.png
01.png
代码语言:javascript
复制
<canvas id="canvasBox" width="600" height="600" style="border: 1px solid #ccc;"></canvas>

<!-- 引入 Fabric.js -->
<script src="https://cdn.bootcdn.net/ajax/libs/fabric.js/521/fabric.js"></script>

<script>
  const canvas = new fabric.Canvas('canvasBox')
  
  const iText = new fabric.IText('', {
    left: 100, // 输入框离画布左侧距离
    top: 100, // 输入框离画布顶部距离
    padding: 7 // 设置输入框内边距
  })
  
  canvas.add(iText) // 将输入框添加到画布中
</script>
复制代码

此时画布和输入框是被创建出来了,但凭肉眼是很难找到输入框在哪。

激活输入框

想要解决上述问题,可以激活输入框。

02.gif
02.gif
代码语言:javascript
复制
// 省略部分代码
iText.enterEditing()
复制代码

enterEditing() 方法可以激活输入框。此时可以看到光标所在的位置一闪一闪的。

《enterEditing 文档》

再进一步

使用 enterEditing() 后输入框是激活了,也能看到光标一闪一闪。

但这就完了吗?

我们还可以再进一步,配合 Fabric CanvassetActiveObject() 方法,激活被选中的对象。

这样选中输入框的效果会更加明显。

03.gif
03.gif
代码语言:javascript
复制
// 省略部分代码

canvas.add(iText).setActiveObject(iText)

iText.enterEditing()
复制代码

从上图可以对比出,加上 setActiveObject() 后,呈现出来的效果更加明显了。

《setActiveObject 文档》

总结

Fabric.js 其实并不难,它比起直接使用原生 Canvas 要简单多了。

使用 Fabric.js 最主要是多看文档,然后把多个 api 结合起来使用,就能创造出多种效果~

代码仓库

IText 激活输入框

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实操
    • 默认情况
      • 激活输入框
        • 再进一步
        • 总结
        • 代码仓库
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档