1
0
Fork 0
hugo/docs/assets/js/alpinejs/data/navbar.js

29 lines
848 B
JavaScript

export const navbar = (Alpine) => ({
init: function () {
Alpine.bind(this.$root, this.root);
return this.$nextTick(() => {
let contentEl = document.querySelector('.content:not(.content--ready)');
if (contentEl) {
contentEl.classList.add('content--ready');
let anchorTemplate = document.getElementById('anchor-heading');
if (anchorTemplate) {
let els = contentEl.querySelectorAll('h2[id], h3[id], h4[id], h5[id], h6[id], dt[id]');
for (let i = 0; i < els.length; i++) {
let el = els[i];
el.classList.add('group');
let a = anchorTemplate.content.cloneNode(true).firstElementChild;
a.href = '#' + el.id;
el.appendChild(a);
}
}
}
});
},
root: {
['@scroll.window.debounce.10ms'](event) {
this.$store.nav.scroll.atTop = window.scrollY < 40 ? true : false;
},
},
});