美文网首页js css html
Fabric.js 元素中心缩放

Fabric.js 元素中心缩放

作者: 德育处主任 | 来源:发表于2023-01-05 09:53 被阅读0次

本文简介

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

使用 fabric.js 创建的图形,默认的缩放原点是元素操作点的对角点。

如下图所示:

file

如果按住 alt 键 操作会把原点移动到元素中心。

如下图所示:

file

如果想将默认缩放操作设置为“中心缩放”,只需将 centeredScaling 属性设置为 true 即可。

设置中心缩放

虽然只要将 ``centeredScaling 设置为 true 就行了,但还能再细分成2种情况。

一个是全局设置,一个是只设置指定元素。

在实际操作之前,我先创建画布,并在画布上添加2个元素,一个矩形,一个圆形。

file
<canvas id="canvasBox" width="600" height="400" style="border: 1px solid #ccc;"></canvas>

<script>
  // 初始化画布
  let canvas = new fabric.Canvas('canvasBox')

  // 矩形元素
  let rect = new fabric.Rect({
    width: 100,
    height: 60,
    left: 100,
    top: 100,
    fill: 'pink'
  })
  
  // 将矩形添加到画布里
  canvas.add(rect) 

  // 圆形元素
  let circle = new fabric.Circle({
    radius: 50,
    left: 300,
    top: 80,
    fill: 'green'
  })

  // 将圆形添加到画布里
  canvas.add(circle)
</script>

全局设置

全局设置的话,画布上所有元素都会生效。

只需在创建画布时将 centeredScaling 设为 true 即可。

file
// 省略部分代码.

// 方式1
let canvas = new fabric.Canvas('canvasBox', {
  centeredScaling: true // 全局所有元素都生效
})


// 方式2
let canvas = new fabric.Canvas('canvasBox')
canvas.centeredScaling = true

从上图中可以看到,不管是圆形还是矩形都是以中心点为缩放原点。因为在 new fabric.Canvas 时或者其返回的实例对象上设置 centeredScaling 都是全局生效的。

单独设置指定元素

如果只是设置指定元素以中心点为缩放原点,那么被设置的元素会生效,其他元素不会生效。

本例只将矩形设置成以中心点为缩放原点,圆形还是默认的操作。

file
// 省略部分代码

// 矩形
let rect = new fabric.Rect({
  width: 100,
  height: 60,
  left: 100,
  top: 100,
  fill: 'pink',
  centeredScaling: true // 单个元素生效
})

// 将矩形添加到画布里
canvas.add(rect)

上面的代码只设置了矩形的 centeredScaling ,圆形还是默认值。

所以在操作矩形缩放时是以中心点为原点,圆形还是默认值。

同样,也支持在创建元素后再设置。

// 省略部分代码

let rect = new fabric.Rect({...})

rect.centeredScaling = true

代码仓库

Fabric.js 中心缩放

推荐阅读

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

👍《Fabric.js IText 手动设置斜体》

👍《Fabric.js 动态设置字号大小》

👍《Fabric.js 锁定背景图,不受缩放和拖拽的影响》

👍《Fabric.js 自由绘制椭圆》

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

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

相关文章

  • Fabric.js 元素中心缩放

    本文简介 点赞 + 关注 + 收藏 = 学会了 使用 fabric.js 创建的图形,默认的缩放原点是元素操作点的...

  • 父母和支点

    默认 1 .元素默认是围绕自身本地原点进行缩放和旋转的2 .可以通过使用父元素或者变换节点来改变中心来设置旋转中心...

  • pixijs以鼠标为中心平移缩放

    缩放方法用的是鼠标移动时不断设置元素中心anchor,并对元素进行平移, 这种方式会影响子元素排列 (理想的方法:...

  • Fabric.js 缩放画布

    本文简介 点赞 + 关注 + 收藏 = 学会了 使用 canvas 开发的项目,滚轮缩放画布的需求应该不算少数,比...

  • PS内容识别缩放

    Photoshop中的内容识别缩放用于缩放图像时令图像中的主要元素尽量不受缩放的影响.(根据颜色识别,即主要元素颜...

  • Fabric.js 控制元素层级

    本文简介 点赞 + 关注 + 收藏 = 学会了 元素是 Fabric.js 的重要组成部分,如果画布上没有元素,那...

  • 微信小程序 mode 的几种模式

    缩放 scaleToFill 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素缩放 aspect...

  • Fabric.js 限制边框宽度缩放

    本文简介 点赞 + 关注 + 收藏 = 学会了 使用 fabric.js 在某些情况下你可能需要固定元素边框的宽度...

  • ios layer 动画(x/y/z轴 旋转)

    x轴旋转: y轴旋转: z轴旋转: 以上缩放是以view的中心点为中心缩放的,如果需要自定义缩放点,可以设置卯点:...

  • Css3 动画transform之scale理解

    1.scale(x,y)对元素进行缩放 2.scaleX(number)对元素只在x轴(水平方向)进行缩放 3.s...

网友评论

    本文标题:Fabric.js 元素中心缩放

    本文链接:https://www.haomeiwen.com/subject/zmyrcdtx.html