Blame view

天文台pc/tianwentai-ui/node_modules/react-smooth/src/setRafTimeout.js 496 Bytes
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  function safeRequestAnimationFrame(callback) {
    if (typeof requestAnimationFrame !== 'undefined') requestAnimationFrame(callback);
  }
  
  export default function setRafTimeout(callback, timeout = 0) {
    let currTime = -1;
  
    const shouldUpdate = now => {
      if (currTime < 0) {
        currTime = now;
      }
  
      if (now - currTime > timeout) {
        callback(now);
        currTime = -1;
      } else {
        safeRequestAnimationFrame(shouldUpdate);
      }
    };
  
    requestAnimationFrame(shouldUpdate);
  }