gtfs-to-html
Version:
Build human readable transit timetables as HTML, PDF or CSV from GTFS
25 lines (22 loc) • 768 B
JavaScript
document.addEventListener('DOMContentLoaded', () => {
const fadeStartPx = 40;
const containers = document.querySelectorAll('.table-container');
function updateScrollEnd(el) {
const { scrollLeft, scrollWidth, clientWidth } = el;
const distanceFromEnd = scrollWidth - clientWidth - scrollLeft;
if (distanceFromEnd >= fadeStartPx) {
el.style.setProperty('--scroll-fade', '1');
} else if (distanceFromEnd <= 0) {
el.style.setProperty('--scroll-fade', '0');
} else {
el.style.setProperty(
'--scroll-fade',
String(distanceFromEnd / fadeStartPx),
);
}
}
containers.forEach((el) => {
updateScrollEnd(el);
el.addEventListener('scroll', () => updateScrollEnd(el), { passive: true });
});
});