requestAnimationTimeout.js 641 B

1234567891011121314151617181920
  1. import getRequestAnimationFrame, { cancelRequestAnimationFrame as caf } from './getRequestAnimationFrame';
  2. var raf = getRequestAnimationFrame();
  3. export var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {
  4. return caf(frame.id);
  5. };
  6. export var requestAnimationTimeout = function requestAnimationTimeout(callback) {
  7. var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  8. var start = Date.now();
  9. function timeout() {
  10. if (Date.now() - start >= delay) {
  11. callback.call();
  12. } else {
  13. frame.id = raf(timeout);
  14. }
  15. }
  16. var frame = {
  17. id: raf(timeout)
  18. };
  19. return frame;
  20. };