summaryrefslogtreecommitdiff
path: root/html/content/js/Plugins/scrollShadowHor.js
blob: eed032568c9e43a4ee9a3f62e77189c622cfbc30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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');
    //    }
    //}
});