summaryrefslogtreecommitdiffstats
path: root/src/js
diff options
context:
space:
mode:
authorDan Allen <dan@opendevise.com>2018-08-12 20:48:31 -0600
committerDan Allen <dan@opendevise.com>2018-08-12 20:48:31 -0600
commit7b835708325e822282d49389391483724aa1908b (patch)
tree8d5898e18a9f3edbf933b0de4f7d3f5320cb49c7 /src/js
parentc7a96c40d97d6521f413d40d530e10fcb472091b (diff)
downloadalpine-antora-theme-7b835708325e822282d49389391483724aa1908b.tar.bz2
alpine-antora-theme-7b835708325e822282d49389391483724aa1908b.tar.xz
fix scroll into view behavior in navigation
- set position relative on .nav-menu - remove position relative from .nav-item - optimize computations for scroll into view - remove debug statements
Diffstat (limited to 'src/js')
-rw-r--r--src/js/01-navigation.js15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/js/01-navigation.js b/src/js/01-navigation.js
index 7108706..9f6fd1f 100644
--- a/src/js/01-navigation.js
+++ b/src/js/01-navigation.js
@@ -134,22 +134,19 @@
}
function scrollItemIntoView (scrollPosition, parent, el) {
- console.log('scrolling item into view')
- console.log('stored value: ' + scrollPosition)
if (!el) return (parent.scrollTop = scrollPosition)
var margin = 10
- var overTheTop = el.offsetTop - scrollPosition < 0
- var belowTheBottom = (el.offsetTop - scrollPosition + el.offsetHeight) > parent.offsetHeight
+ //var y = el.getBoundingClientRect().top - parent.getBoundingClientRect().top
+ var y = el.offsetTop
- if (overTheTop) {
- parent.scrollTop = el.offsetTop - margin
- } else if (belowTheBottom) {
- parent.scrollTop = el.offsetTop - (parent.offsetHeight - el.offsetHeight) + margin
+ if (y < scrollPosition) {
+ parent.scrollTop = y - margin
+ } else if (y - parent.offsetHeight + el.offsetHeight > scrollPosition) {
+ parent.scrollTop = y - parent.offsetHeight + el.offsetHeight + margin
} else {
parent.scrollTop = scrollPosition
}
- console.log('set scrollTop to ' + parent.scrollTop)
}
function find (selector, from) {