1
0
Fork 0
mirror of synced 2024-06-28 11:10:46 +12:00
appwrite/public/scripts/views/general/scroll-direction.js
2020-01-27 10:21:34 +02:00

46 lines
1.5 KiB
JavaScript

(function (window) {
"use strict";
window.ls.view.add({
selector: 'data-general-scroll-direction',
repeat: false,
controller: function (element, window) {
let position = 0;
let check = function() {
let direction = window.document.documentElement.scrollTop;
if (direction > position) {
element.classList.remove('scroll-to-top')
element.classList.add('scroll-to-bottom')
}
else {
element.classList.remove('scroll-to-bottom')
element.classList.add('scroll-to-top')
}
position = direction;
//let previous = parseInt(element.getAttribute('data-views-current') || 1);
let current = Math.ceil(direction / window.innerHeight);
element.setAttribute('data-views-total', Math.ceil(element.scrollHeight / window.innerHeight));
element.setAttribute('data-views-current', current);
if (element.scrollHeight <= (direction + element.offsetHeight + 300) && direction > 0) {
element.classList.add('scroll-end')
}
else {
element.classList.remove('scroll-end')
}
};
window.addEventListener('scroll', check, false);
window.addEventListener('resize', check, false);
check();
}
});
})(window);