当前位置:网站首页>Delete element (with transition animation)
Delete element (with transition animation)
2022-07-02 14:26:00 【Director of Moral Education Department】
Brief introduction
Fabric.js Provides 2 Methods to delete objects .
One is Delete directly , Another way is With transition animation Remove elements ( Fade out animation ).
This article focuses on With transition animation How to delete elements , I'll also talk about settings The transition time is long 、 Delete the Callback function Wait for knowledge .

<br>
<br>
relevant API
Delete the element's 2 Methods :
canvas.remove(...object)canvas.fxRemove(object, callbacksopt)
Animation duration :
canvas.FX_DURATION
<br>
canvas.remove
remove Well understood. , It means delete . Just pass in the element object .
canvas.remove(object) stay canvas.renderOnAddRemove by true Under the circumstances , Use canvas.remove After deleting the element , The canvas will refresh automatically .
canvas.renderOnAddRemove The default value is true
<br>
If canvas.renderOnAddRemove = false , Use canvas.remove after , The element is deleted , But you can still see elements on the canvas .
Manual execution is required at this time canvas.renderAll() Or other refresh methods , The element that has just been deleted will be removed from the canvas ( Visually ) disappear .
<br>
canvas.fxRemove
fxRemove Is a deletion method with transition animation , Objects deleted using this method fade out , Until it disappears .
This method The first parameter Is the object to delete ;
The second parameter Is a callback object , This object has 2 It's worth , Is a type function .
Namely onChange and onComplete .
onChange: Called at every step of the animationonComplete: After successful deletion, base note is called.
<br>
canvas.fxRemove(object, { onChange() { console.log(' Called at every frame of the animation ') }, onComplete() { console.log(' After successful deletion, base note is called. ') }})<br>
canvas.FX_DURATION
canvas.FX_DURATION You can set the duration of the transition animation .
The default value is 500, The unit is millisecond
canvas.FX_DURATION = 1500<br>
After modification canvas.FX_DURATION after , Try again. canvas.fxRemove , The transition duration of deleting elements is the duration you set .
<br>
<br>
Sample code

<div class="btn-x"> <button onclick="delCircle()"> Remove elements ( Circular )</button> <button onclick="delRect()"> Delete element with animation ( square )</button></div><canvas id="canvasBox" width="600" height="600"></canvas> <script src="https://cdn.bootcdn.net/ajax/libs/fabric.js/460/fabric.min.js"></script><script> let canvas = null let circle = null let rect = null window.onload = function() { // Use Elements id Create a canvas , At this point, you can box select... On the canvas canvas = new fabric.Canvas('canvasBox', { width: 400, height: 400 }) // circular circle = new fabric.Circle({ name: 'circle', top: 60, left: 60, radius: 30, // The radius of the circle 30 fill: 'yellowgreen' }) // rectangular rect = new fabric.Rect({ name: 'rect', top: 60, // From the top of the container 60px left: 200, // To the left of the container 200px fill: 'orange', // fill a Orange width: 60, // Width 60px height: 60 // Height 60px }) // Add rectangle to canvas canvas.add(circle, rect) } // Delete circle ( No animation ) function delCircle() { canvas.remove(circle) } // Delete rectangle ( There's animation ) function delRect() { canvas.FX_DURATION = 1500 // Animation duration , Default 500 millisecond canvas.fxRemove(rect, { onChange() { console.log(' Called at every step of the animation ') }, onComplete() { console.log(' After successful deletion, base note is called. ') } }) }</script><br>
<br>
Code warehouse
- Native way to achieve Remove elements ( With transition animation )
- stay Vue3 Use in Fabric Realization Remove elements ( With transition animation )
<br>
<br>
Recommended reading
《Fabric.js Upload local image to canvas background 》
《Fabric.js From entry to expansion 》
《Fabric.js Gradient effect ( Including radial gradient )》
《Fabric.js 3 individual api Set canvas width and height 》
《Fabric.js Customize the right-click menu 》
<br>
If the content of this article is helpful to you , Please also give me a compliment give the thumbs-up + Focus on + Collection = Learned to
边栏推荐
猜你喜欢

YOLOv3&YOLOv5输出结果说明

Dangbei projection 4K laser projection X3 Pro received unanimous praise: 10000 yuan projector preferred

Whole house Wi Fi: a pain point that no one can solve?

Teamtalk source code analysis win client

全屋Wi-Fi:一个谁也解决不好的痛点?

Use bloc to build a page instance of shutter

你知道Oracle的数据文件大小有上限么?

In 2021, the global TCB adapter revenue was about $93 million, and it is expected to reach $315.5 million in 2028

<口算练习机 方案开发原理图>口算练习机/口算宝/儿童数学宝/儿童计算器 LCD液晶显示驱动IC-VK1621B,提供技术支持

Tencent cloud tstor unified storage passed the evaluation of the first batch of basic file storage capabilities of the ICT Institute
随机推荐
Talk about idempotent design
万物生长大会在杭召开,当贝入选2022中国未来独角兽TOP100榜单
自定义事件,全局事件总线,消息订阅与发布,$nextTick
selenium 元素定位方法
Simple introduction to ENSP
Everyone believes that the one-stop credit platform makes the credit scenario "useful"
Chaos engineering platform chaosblade box new heavy release
Packet capturing tool Fiddler learning
Code implementation MNLM
由粒子加速器产生的反中子形成的白洞
kaggle如何使用utility script
Yolov3 & yolov5 output result description
Codeforces Round #803 (Div. 2)(A~D)
每日学习2
MySQL 45 lecture - learning from the actual battle of geek time MySQL 45 Lecture Notes - 04 | easy to understand index (Part 1)
BeanUtils -- shallow copy -- example / principle
Adhere to the foundation of 20 minutes go every day II
什么是 eRDMA?丨科普漫画图解
默认插槽,具名插槽,作用域插槽
Custom events, global event bus, message subscription and publishing, $nexttick