当前位置:网站首页>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
边栏推荐
- Penetrate the remote connection database through the Intranet
- Design of non main lamp: how to make intelligent lighting more "intelligent"?
- Who is better, Qianyuan projection Xiaoming Q1 pro or Jimi new play? Which configuration is higher than haqu K1?
- Origin plots thermogravimetric TG and differential thermogravimetric DTG curves
- Error: eacces: permission denied, access to "/usr/lib/node_modules"
- Use of swagger
- P1042 [NOIP2003 普及组] 乒乓球
- Federated Search: all requirements in search
- Use of UIC in QT
- Methods of software testing
猜你喜欢

uniapp自动化测试学习

BeanUtils -- shallow copy -- example / principle

php链表创建和遍历

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

Téléchargement par navigateur
![[Hongke technology sharing] how to test DNS server: DNS performance and response time test](/img/f4/d8c21d6c33985fd6d819cd44c22c72.png)
[Hongke technology sharing] how to test DNS server: DNS performance and response time test

Pycharm连接远程服务器

博睿数据一体化智能可观测平台入选中国信通院2022年“云原生产品名录”

The conference on the growth of all things was held in Hangzhou, and dangbei was selected into the top 100 list of future unicorns in China in 2022

Development skills of rxjs observable custom operator
随机推荐
2022家用投影仪首选!当贝F5强悍音画效果带来极致视听体验
软件测试的方法
Yyds dry goods inventory software encryption lock function
快解析:轻松实现共享上网
Chapter 9: xshell free version installation
The evolution process of the correct implementation principle of redis distributed lock and the summary of redison's actual combat
途家木鸟美团夏日折扣对垒,门槛低就一定香吗?
你知道Oracle的数据文件大小有上限么?
<口算練習機 方案開發原理圖>口算練習機/口算寶/兒童數學寶/兒童計算器 LCD液晶顯示驅動IC-VK1621B,提供技術支持
Convolutional neural network (Introduction)
docker mysql
Openharmony notes --------- (4)
How many knowledge points can a callable interface have?
Slashgear shares 2021 life changing technology products, which are somewhat unexpected
MySQL 45 lecture - learning the actual battle of MySQL in Geek time 45 Lecture Notes - 05 | easy to understand index (Part 2)
Some interview suggestions for Android programmers "suggestions collection"
Generally speaking, if the error of inconsistent tab and space occurs frequently
没有从远程服务器‘‘映射到本地用户‘(null)/sa‘的远程用户‘sa‘及服务主密码解密错误的解决办法
Go operation redis
给Android程序员的一些面试建议「建议收藏」