From 68fc9e55e538e03f94509731ab41a0c8cf96710f Mon Sep 17 00:00:00 2001 From: George Halkiadakis Date: Mon, 17 Apr 2023 12:12:22 +0300 Subject: setup a real server environment (apache DocumentRoot=/var/www/public) --- public/assets/js/plugins/scrollShadowHor.js | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 public/assets/js/plugins/scrollShadowHor.js (limited to 'public/assets/js/plugins/scrollShadowHor.js') diff --git a/public/assets/js/plugins/scrollShadowHor.js b/public/assets/js/plugins/scrollShadowHor.js new file mode 100644 index 0000000..eed0325 --- /dev/null +++ b/public/assets/js/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