ResizeHandler.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**
  2. * Created by acondolu on 15/07/16.
  3. */
  4. "use strict";
  5. /**
  6. * Helper function for managing window's onResize events
  7. * @param startCallback
  8. * @param endCallback
  9. */
  10. function handleResize(startCallback, endCallback) {
  11. "use strict";
  12. var rtime;
  13. var timeout = undefined;
  14. var delta = 200;
  15. function resizeEnd() {
  16. //timeout = undefined;
  17. window.clearTimeout(timeout);
  18. if ((new Date()).getTime() - rtime < delta) {
  19. timeout = window.setTimeout(resizeEnd, delta);
  20. }
  21. else {
  22. endCallback();
  23. }
  24. }
  25. function resizeStart() {
  26. rtime = (new Date()).getTime();
  27. if (!timeout) {
  28. startCallback();
  29. rtime = (new Date()).getTime();
  30. timeout = window.setTimeout(resizeEnd, delta);
  31. }
  32. }
  33. if (window.attachEvent) {
  34. // Support IE<9
  35. window.attachEvent("onresize", resizeStart);
  36. }
  37. else {
  38. window.addEventListener("resize", resizeStart);
  39. }
  40. window.setTimeout(startCallback, 0);
  41. window.setTimeout(endCallback, 1);
  42. }
  43. exports.handleResize = handleResize;