为了账号安全,请及时绑定邮箱和手机立即绑定

vue的transition代码里nextFrame为什么要间隔两帧?

vue的transition代码里nextFrame为什么要间隔两帧?

红糖糍粑 2018-12-20 18:19:18
版本为vue2.3,源码如下:var raf = inBrowser && window.requestAnimationFrame  ? window.requestAnimationFrame.bind(window)  : setTimeout;function nextFrame (fn) {  raf(function () {    raf(fn);  });}这个nextFrame似乎是延迟了两帧然后触发fn进行重绘,这个情况下有时候动画会有一个抖动,但是改为下面代码的话,在下一帧就开始动画,动画抖动似乎就消失了,请问上面这样写的用意是什么?function nextFrame (fn) {  raf(function () {    fn();  });}
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

不清楚你的上下文,根据你写的代码看是因为raf,假设当前raf=setTimeout。
那第一种就是setTimeout了两次啊,进行了两次类似cpu转让的操作。

查看完整回答
反对 回复 2019-01-07
  • 1 回答
  • 0 关注
  • 507 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信