2
0

queue.js 599 B

1234567891011121314151617181920212223242526272829303132333435
  1. var _ = require('../util')
  2. var queue = []
  3. var queued = false
  4. /**
  5. * Push a job into the queue.
  6. *
  7. * @param {Function} job
  8. */
  9. exports.push = function (job) {
  10. queue.push(job)
  11. if (!queued) {
  12. queued = true
  13. _.nextTick(flush)
  14. }
  15. }
  16. /**
  17. * Flush the queue, and do one forced reflow before
  18. * triggering transitions.
  19. */
  20. function flush () {
  21. // Force layout
  22. var f = document.documentElement.offsetHeight
  23. for (var i = 0; i < queue.length; i++) {
  24. queue[i]()
  25. }
  26. queue = []
  27. queued = false
  28. // dummy return, so js linters don't complain about
  29. // unused variable f
  30. return f
  31. }