From 2b6970d33afd75be5bfef951dc3691d492004d43 Mon Sep 17 00:00:00 2001 From: George Halkiadakis Date: Tue, 18 Apr 2023 01:11:37 +0300 Subject: admin back-office environment (skeleton); admin categories --- .../_dependency-control/plugins/scrollShadowHor.js | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 public/assets/js/_dependency-control/plugins/scrollShadowHor.js (limited to 'public/assets/js/_dependency-control/plugins/scrollShadowHor.js') diff --git a/public/assets/js/_dependency-control/plugins/scrollShadowHor.js b/public/assets/js/_dependency-control/plugins/scrollShadowHor.js new file mode 100644 index 0000000..eed0325 --- /dev/null +++ b/public/assets/js/_dependency-control/plugins/scrollShadowHor.js @@ -0,0 +1,42 @@ +$$plugins.define('scrollShadowHor', function (element, options) { + var scrollElm = element.querySelector('.scrollbar'), + listInner = element.querySelector('.scrollbar__inner'); + + const observer = new MutationObserver(function(mutations) { + var childrenMutations = mutations.filter((x) => x.type === "childList"); + if (childrenMutations.length > 0){ + checkScrollPos(scrollElm); + } + }); + + observer.observe(listInner, { subtree: true, childList: true }); + + checkScrollPos(scrollElm); + + scrollElm.addEventListener("scroll", function () { + checkScrollPos(this); + }); + + function checkScrollPos(scrollContainer) { + if (scrollContainer.scrollLeft + element.offsetWidth > listInner.offsetWidth - 8) { + element.classList.add('scrollbarShadow--right'); + } else { + element.classList.remove('scrollbarShadow--right'); + } + if (scrollContainer.scrollLeft < 8) { + element.classList.add('scrollbarShadow--left'); + } else { + element.classList.remove('scrollbarShadow--left'); + } + } + + //checkScrollInit(); + + //function checkScrollInit() { + // if (element.offsetWidth >= listInner.offsetWidth) { + // element.classList.add('scrollbarShadow--noScroll'); + // } else { + // element.classList.remove('scrollbarShadow--noScroll'); + // } + //} +}); -- cgit v1.2.3