当前位置:网站首页>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
边栏推荐
- Method of creating linked server for cross server data access
- Default slot, named slot, scope slot
- Thymeleaf dependency
- In 2021, the global styrene butadiene styrene (SBS) revenue was about $3722.7 million, and it is expected to reach $5679.6 million in 2028
- [deep learning] simple implementation of neural network forward propagation
- Teamtalk source code analysis win client
- Error: eacces: permission denied, access to "/usr/lib/node_modules"
- [development environment] StarUML tool (download software | StarUML installation | StarUML creation project)
- Development skills of rxjs observable custom operator
- [Hongke technology sharing] how to test DNS server: DNS performance and response time test
猜你喜欢

Yolov3 & yolov5 output result description

自定义事件,全局事件总线,消息订阅与发布,$nextTick

Codeforces Round #803 (Div. 2)(A~D)

Téléchargement par navigateur

What is erdma? Popular science cartoon illustration

Qt新建项目

Certik released the defi security report in 2021, disclosing key data of industry development (PDF download link attached)

快解析:轻松实现共享上网

Selenium element positioning method

In 2021, the global styrene butadiene styrene (SBS) revenue was about $3722.7 million, and it is expected to reach $5679.6 million in 2028
随机推荐
Selenium, element operation and browser operation methods
[to be continued] [UE4 notes] l5ue4 model import
Pycharm连接远程服务器
Data consistency between redis and database
快解析:轻松实现共享上网
跨服务器数据访问的创建链接服务器方法
Development and design of animation surrounding mall sales website based on php+mysql
Available solution development oral arithmetic training machine / math treasure / children's oral arithmetic treasure / intelligent math treasure LCD LCD driver ic-vk1622 (lqfp64 package), original te
故事點 vs. 人天
NLA自然语言分析,让数据分析更智能
联合搜索:搜索中的所有需求
Launcher启动过程
Selenium element positioning method
Basic knowledge of QT original code
Development skills of rxjs observable custom operator
Design of non main lamp: how to make intelligent lighting more "intelligent"?
Téléchargement par navigateur
Dangbei projection 4K laser projection X3 Pro received unanimous praise: 10000 yuan projector preferred
Qt原代码基本知识
无主灯设计:如何让智能照明更加「智能」?