syncroScroll.js 1.0 KB

123456789101112131415161718192021222324252627
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. function syncronizeElementsScrolling(elements, direction = "vh") {
  4. let activeScroller = null;
  5. const bSyncroV = direction.indexOf("v") > -1;
  6. const bSyncroH = direction.indexOf("h") > -1;
  7. const applyListener = function (element) {
  8. element.addEventListener("mouseenter", function (e) {
  9. activeScroller = e.target;
  10. });
  11. element.addEventListener("scroll", function (e) {
  12. if (e.target !== activeScroller)
  13. return;
  14. elements.forEach(function (element) {
  15. if (activeScroller === element || activeScroller === null)
  16. return;
  17. if (bSyncroV)
  18. element.scrollTop = activeScroller.scrollTop;
  19. if (bSyncroH)
  20. element.scrollLeft = activeScroller.scrollLeft;
  21. });
  22. });
  23. };
  24. elements.forEach(applyListener);
  25. }
  26. exports.default = syncronizeElementsScrolling;
  27. //# sourceMappingURL=syncroScroll.js.map