From f52d255fa69d0938f45e3bd44aff7557ce3227b3 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sun, 10 Feb 2019 23:18:14 +0100 Subject: [PATCH] smoother scroll behavior after pagination clicks --- templates/table/layout.julius | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/templates/table/layout.julius b/templates/table/layout.julius index e22b451b9..296f03721 100644 --- a/templates/table/layout.julius +++ b/templates/table/layout.julius @@ -38,8 +38,8 @@ pagesizeForm = wrapper.querySelector('#' + tableIdent + '-pagesize-form'); // take options into account - if (options && options.scrollToTop) { - window.scrollTo(0, 0); + if (options && options.scrollTo) { + window.scrollTo(options.scrollTo); } if (options && options.horizPos && scrollTable) { @@ -63,7 +63,16 @@ pageLinks.forEach(function(link) { link.clickHandler = function(event) { var boundClickHandler = clickHandler.bind(this); - boundClickHandler(event, { scrollToTop: true }); + var wrapperBoundingRect = wrapper.getBoundingClientRect(); + var options = {}; + if (wrapperBoundingRect.top < 160) { + options.scrollTo = { + top: (wrapper.offsetTop || 0) - 60, + left: wrapper.offsetLeft || 0, + behavior: 'smooth', + }; + } + boundClickHandler(event, options); } link.element.addEventListener('click', link.clickHandler); });