当前位置:网站首页>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
边栏推荐
- Go operation redis
- Use of UIC in QT
- Convolutional neural network (Introduction)
- 字符串匹配问题
- 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
- docker mysql
- P1908 逆序对
- QT new project_ MyNotepad++
- 什么是 eRDMA?丨科普漫画图解
- 2022 home projector preferred! Dangbei F5 brings the ultimate audio-visual experience with its powerful audio-visual effect
猜你喜欢

Selenium, element operation and browser operation methods

Development skills of rxjs observable custom operator

每日学习3

MySQL45讲——学习极客时间MySQL实战45讲笔记—— 04 | 深入浅出索引(上)

联合搜索:搜索中的所有需求

Design and implementation of car query system based on php+mysql

PyQt5_QScrollArea内容保存成图片

Pychart connects to the remote server

跨服务器数据访问的创建链接服务器方法

HMS core machine learning service helps zaful users to shop conveniently
随机推荐
Development skills of rxjs observable custom operator
全屋Wi-Fi:一个谁也解决不好的痛点?
Tip: SQL Server blocked the state 'openrowset/opendatasource' of component 'ad hoc distributed queries'
Solving the longest subsequence with linear DP -- three questions
一般来讲,如果频繁出现inconsistent tab and space的报错
Design of non main lamp: how to make intelligent lighting more "intelligent"?
线性dp求解 最长子序列 —— 小题三则
SystemServer进程
kaggle如何使用utility script
mongodb的认识
NLA自然语言分析,让数据分析更智能
Some interview suggestions for Android programmers "suggestions collection"
Federated Search: all requirements in search
Dangbei projection 4K laser projection X3 Pro received unanimous praise: 10000 yuan projector preferred
Simple introduction to ENSP
字符串匹配问题
Data Lake (11): Iceberg table data organization and query
Fabric.js 手动加粗文本iText
Thymeleaf dependency
Browser driven Download