![88199addef86a344daa642245c97eb28.png](https://img-blog.csdnimg.cn/img_convert/88199addef86a344daa642245c97eb28.png)
Why
渲染一个Table列表是非常非常常见的需求
如果我们什么都不做,只是单纯的增加或删除其中的一条内容
想想这时候整个列表会发生什么?
被增加或删除的元素会以“闪现”的方式出现或消失
更糟糕的是它的“兄弟们”也会跟着瞬间移动
对于一个但凡有轻微强迫症的前端攻城狮来说这实在是难以忍受的不是吗
Fine,我给每个列表项在恰当的时机添加/删除 CSS 类名
然后给这些class写上一些过渡或动画属性
这就完事了吗?
wait wait wait! 那"兄弟们"呢?
"兄弟们"依然还在瞬间移动啊
这....
难道要计算一下下一帧"兄弟们"应该在的位置
然后用transform移动过去并且给transform属性设置过渡?
呃呃呃woc想想就好麻烦啊
![b4ab63bf5b144e936e00ff741769eb76.gif](https://img-blog.csdnimg.cn/img_convert/b4ab63bf5b144e936e00ff741769eb76.gif)
就算费了九牛二虎之力实现了这个效果
但你会发现一个更糟糕的事情
“这也太卡了8 ”
你可能已经尝试过了改变元素的height、width、top、left或者除了transform和opacity之外的其他属性来实现一个动画效果。
或许你已经在以往的经历(做的动效)中发现自己的实现的动效有点粗糙甚至卡顿,其实这是有一定原因的
/>
任何触发布局变化的属性(比如height),浏览器都会递归检查布局中的其他元素是否也因此改变,这样的一个过程花销是很贵的 <