第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Fabric.js 元素被選中時保持原有層級

標(biāo)簽:
Html5 JavaScript CSS3

本文简介

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


不知道你在使用 Fabric.js 时有没有发现,如果一个画布存在多个元素,而且它们之前是层叠的,当你选中底层的元素时,那个元素会跳到最顶层;当你释放该元素后,它又跑回原有层级。这是 Fabric.js 的默认状态。

如果你不希望操作时出现这种情况,你希望在元素被选中时还保持它原有的层级,那么我推荐你在初始化画布时,设置 preserveObjectStackingtrue


接下来我将举例说明该属性的效果和用法。



默认情况

默认情况是被选中的元素会跑到最顶层,当它被释放后又跑回原来的层级。

file

<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')
  
  // 圆形
  circle = new fabric.Circle({
    name: 'circle',
    top: 60,
    left: 60,
    radius: 30, // 圆的半径 30
    fill: 'yellowgreen'
  })

  // 矩形
  rect = new fabric.Rect({
    name: 'rect',
    top: 30, // 距离容器顶部 60px
    left: 100, // 距离容器左侧 200px
    fill: 'orange', // 填充a 橙色
    width: 60, // 宽度 60px
    height: 60 // 高度 60px
  })
  
  // 将矩形添加到画布中
  canvas.add(circle, rect)
</script>

上面的代码,我创建了一个绿色圆形和一个橙色矩形。

canvas.add(circle, rect) 中,先添加圆形,再添加矩形,所以矩形的层级会比圆形高。

我故意调整了两个图形的位置,让它们有一部分是重叠起来的。

所以最终出来的效果是圆形在矩形下面。


Fabric.js 默认情况下,被选中的元素会跳到顶层,所以你可以看看上图的操作效果。



保持原有层级的情况

如果你不想按照默认的情况来操作,尤其是画布中对象比较多的时候,希望被操作的对象一直保持在原有的层级,这样操作起来某些情况下会更直观。那么你可以在初始化画布时将 preserveObjectStacking 设为 true

file

// 省略部分代码

const canvas = new fabric.Canvas('canvasBox', {
  // 元素对象被选中时保持在当前z轴,不会跳到最顶层
  preserveObjectStacking: true // 默认false
})


代码仓库



點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消