本文简介

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


fabric.js 创立画布时,fabric.js 会在 canvas 元素外包一层 div 容器。

如果想不便设置容器款式或者想通过 js 管制该容器,能够先给容器一个类名。

本文次要讲如何给包装容器设置类名相干注意事项



设置容器类名

在应用 fabric.js 创立画布时就能够 通过 containerClass 设置包装容器的类名

<canvas id="canvasBox"></canvas><script>  // 创立画布  let canvas = new fabric.Canvas('c', {    containerClass: 'ccc'  })</script>

我这里轻易命名,应用了 ccc

此时关上控制台就能够看到外层包装容器的类名是 ccc


能够再配合 css 设置一些款式。

<style>  .ccc {    border: 1px solid pink;  }</style><canvas id="canvasBox"></canvas><script>  // 创立画布  let canvas = new fabric.Canvas('c', {    containerClass: 'ccc'  })</script>


应用 fabric.js 的话,倡议应用该办法设置包装容器的类名。



注意事项

尽管设置包装容器类名很不便,但也存在一些注意事项。


容器有默认类名

如果没应用 containerClass 设置包装容器类名,fabric.js 会将容器的类名设置为 canvas-container


不倡议用css设置宽高

如果用 css 设置容器的宽高,还须要应用 !important 才会失效。因为 fabric.js 会将默认宽高绑定在元素的 style 上,变成内联款式。

但即便是应用 !important 进步款式权重,只会扭转容器宽高,并不会扭转画布宽高。所以还须要设置画布宽高。

<style>  .ccc {    border: 1px solid pink;    width: 500px !important;    height: 300px !important;  }  .ccc canvas {    width: 500px !important;    height: 300px !important;  }</style><canvas id="canvasBox"></canvas><script>  let canvas = new fabric.Canvas('canvasBox', {    containerClass: 'ccc'  })</script>


canvas 中不举荐应用 css 的形式设置画布宽高,因为这样做会导致画布内容变形。


比方我在画布中增加一个正方形,这么一操作就不是正方形了。

<style>  .ccc {    border: 1px solid pink;    width: 500px !important;    height: 300px !important;  }  .ccc canvas {    width: 500px !important;    height: 300px !important;  }</style><canvas id="canvasBox"></canvas><script>  let canvas = new fabric.Canvas('canvasBox', {    containerClass: 'ccc'  })  let rect = new fabric.Rect({    width: 100,    height: 100,    top: 10,    left: 10  })  canvas.add(rect)</script>


如需设置画布宽高,可参考 《Fabric.js 3个api设置画布宽高》


不倡议设置容器定位模式

fabric.js 在初始化画布时,会将容器的 position 设置成 relative

将外面的2个 canvas 元素的 position 设置成 absolute

没非凡需要的话,应该尊重 fabric.js 的这个设定。


不倡议设置容器的padding

如果只是设置了容器的 padding 其实没多大意义。

因为外部的两个 canvas 元素都应用了相对定位 ( relative ) 的定位模式,所以这样操作没啥意义。



代码仓库

⭐Fabric.js 设置容器类名



举荐浏览

《Fabric.js 从入门到_ _ _ _》

《Fabric.js 元素核心缩放》

《Fabric.js 变换视窗》

《Fabric.js 拖拽平移画布》

《Fabric.js 元素被遮挡的局部也能够操作》

《Fabric.js 自定义子类,创立属于本人的图形》


点赞 + 关注 + 珍藏 = 学会了
代码仓库