Code coverage report for site-build/static/rememberScrollPosition.js

Statements: 0% (0 / 23)      Branches: 0% (0 / 4)      Functions: 0% (0 / 5)      Lines: 0% (0 / 23)      Ignored: none     

All files » site-build/static/ » rememberScrollPosition.js
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                                                                           
function rememberScrollPosition() {
    function rememberScrollPositionForElement(element) {
        var id = element.getAttribute('id');
        var scrollTimer;
        element.onscroll = function (e) {
            clearTimeout(scrollTimer);
            scrollTimer = setTimeout(function () {
                try {
                    localStorage.setItem(id + ' scrollTop', element.scrollTop);
                    localStorage.setItem(id + ' scrollLeft', element.scrollLeft);
                } catch (e) {
                    // ignore
                }
            }, 300);
        };
    }
    function retrieveScrollPositionForElement(element) {
        var id = element.getAttribute('id');
        var scrollTop = localStorage.getItem(id + ' scrollTop') || 0;
        var scrollLeft = localStorage.getItem(id + ' scrollLeft') || 0;
        element.scrollTop = parseInt(scrollTop, 10);
        element.scrollLeft = parseInt(scrollLeft, 10);
    }
 
    var elements = document.querySelectorAll('.js-remember-scroll-position');
    for (var i = 0; i < elements.length; i += 1) {
        try {
            var element = elements[i];
            retrieveScrollPositionForElement(element);
            rememberScrollPositionForElement(element);
        } catch (e) {
            // ignore
        }
    }
}
 
rememberScrollPosition();