add auto-scroll on current sidebar item
This commit is contained in:
parent
79754d45c1
commit
053f4aa5b8
|
@ -8,14 +8,24 @@ const Sidebar = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const stickyMenu = menu.querySelector('.sidebar-sticky')
|
const stickyMenu = menu.querySelector('.sidebar-sticky')
|
||||||
|
const items = stickyMenu.querySelectorAll('a.nav-link')
|
||||||
const currentItem = menu.querySelector('.nav-link.active')
|
const currentItem = menu.querySelector('.nav-link.active')
|
||||||
|
|
||||||
|
items.forEach((item) => {
|
||||||
|
item.addEventListener('click', () => {
|
||||||
|
localStorage.setItem('sidebar-item-top', stickyMenu.scrollTop)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
const toggler = menu.querySelector('.sidebar-toggler .btn')
|
const toggler = menu.querySelector('.sidebar-toggler .btn')
|
||||||
|
|
||||||
toggler.addEventListener('click', () => {
|
toggler.addEventListener('click', () => {
|
||||||
menu.classList.toggle('is-open')
|
menu.classList.toggle('is-open')
|
||||||
})
|
})
|
||||||
|
|
||||||
stickyMenu.scroll({top: currentItem.offsetTop - menu.scrollTop})
|
if (currentItem) {
|
||||||
|
stickyMenu.scroll({top: localStorage.getItem('sidebar-item-top') ?? 0})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Sidebar
|
module.exports = Sidebar
|
||||||
|
|
Loading…
Reference in a new issue