Blame view

天文台pc/tianwentai-ui/node_modules/dom-helpers/cjs/animationFrame.js 1.28 KB
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
  "use strict";
  
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  
  exports.__esModule = true;
  exports.request = exports.cancel = void 0;
  
  var _canUseDOM = _interopRequireDefault(require("./canUseDOM"));
  
  /* https://github.com/component/raf */
  var prev = new Date().getTime();
  
  function fallback(fn) {
    var curr = new Date().getTime();
    var ms = Math.max(0, 16 - (curr - prev));
    var handle = setTimeout(fn, ms);
    prev = curr;
    return handle;
  }
  
  var vendors = ['', 'webkit', 'moz', 'o', 'ms'];
  var cancelMethod = 'clearTimeout';
  var rafImpl = fallback; // eslint-disable-next-line import/no-mutable-exports
  
  var getKey = function getKey(vendor, k) {
    return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + "AnimationFrame";
  };
  
  if (_canUseDOM.default) {
    vendors.some(function (vendor) {
      var rafMethod = getKey(vendor, 'request');
  
      if (rafMethod in window) {
        cancelMethod = getKey(vendor, 'cancel'); // @ts-ignore
  
        rafImpl = function rafImpl(cb) {
          return window[rafMethod](cb);
        };
      }
  
      return !!rafImpl;
    });
  }
  
  var cancel = function cancel(id) {
    // @ts-ignore
    if (typeof window[cancelMethod] === 'function') window[cancelMethod](id);
  };
  
  exports.cancel = cancel;
  var request = rafImpl;
  exports.request = request;