Fabric.js 保存自定義屬性方法示例
引言
之前有些工友留言:在 fabric.js 中怎么保存元素的自定義屬性?
比如,創(chuàng)建一個矩形,這個矩形有自己的 ID 屬性,在執(zhí)行序列化操作出來的結(jié)果卻看不到 ID 屬性了。
如何在序列化時輸出自定義屬性?其實答案都寫在文檔里。
本文會用真實代碼演示一下如何在序列化時輸出自定義屬性。
動手試試看
序列化的方法有好幾個,我用 toJSON 為例。
toJSON 方法可以將畫布導出為 JSON 數(shù)據(jù)。

<canvas id="c" width="500" height="400" style="border: 1px solid #ccc;"></canvas>
<button onclick="handleToJSON()">toJSON</button>
<script>
let canvas = new fabric.Canvas('c')
let rect = new fabric.Rect({
width: 30,
height: 30,
top: 10,
left: 10,
my_id: 'rect01'
})
canvas.add(rect)
function handleToJSON() {
console.log(canvas.toJSON()) // 序列化,輸出JSON
}
</script>
點擊按鈕之后就會在控制臺輸出一個 JSON 數(shù)據(jù),是畫布自身的。
但從上圖可以看出,創(chuàng)建 矩形rect 時自定義了一個 my_id 的屬性,但輸出時卻看不到 my_id。
如果希望在序列化時能輸出自定義屬性,可以在 toJSON() 方法里傳入一個數(shù)組,這個數(shù)組里標明要輸出的自定義屬性的 key 即可。
需要注意的是,這里說的 key 是字符串類型。

// 省略部分代碼
let canvas = new fabric.Canvas('c')
let rect = new fabric.Rect({
width: 30,
height: 30,
top: 10,
left: 10,
my_id: 'rect01'
})
canvas.add(rect)
function handleToJSON() {
console.log(canvas.toJSON(['my_id'])) // 序列化,輸出JSON
}
點擊按鈕后,在控制臺輸出的內(nèi)容就包含了矩形自定義屬性 my_id 。
除了 toJSON() 外,toObject()、toDatalessJSON()、toDatalessObject() 都支持輸出自定義參數(shù),而且用法都是一樣的。
代碼倉庫
以上就是Fabric.js 保存自定義屬性方法示例的詳細內(nèi)容,更多關于Fabric.js 保存自定義屬性的資料請關注腳本之家其它相關文章!
相關文章
解析Javascript設計模式Revealing?Module?揭示模式單例模式
這篇文章主要為大家解析了Javascript設計模式Revealing?Module?揭示模式及Singleton單例模式示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
javascript實現(xiàn)字典Dictionary示例基礎
這篇文章主要為大家介紹了javascript實現(xiàn)字典Dictionary基礎示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
微信小程序 swiper制作tab切換實現(xiàn)附源碼
這篇文章主要介紹了微信小程序 swiper制作tab切換實現(xiàn)代碼的相關資料,需要的朋友可以參考下2017-01-01

