mirror of
https://github.com/alex-shpak/hugo-book.git
synced 2025-06-20 08:01:54 +00:00
feat: Add navbar submenu toggle and tracking
This commit is contained in:
parent
610fbee1b6
commit
354a4f038b
28
assets/navbar.js
Normal file
28
assets/navbar.js
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
;(function () {
|
||||||
|
var navbarItems = document.querySelectorAll('.dcl.navbar .dcl.navbar-menu .ui.menu > div.item')
|
||||||
|
navbarItems.forEach((menuItem) => {
|
||||||
|
menuItem.addEventListener('mouseenter', function (event) {
|
||||||
|
var submenu = event.target.querySelector('.item.submenu')
|
||||||
|
if (submenu) {
|
||||||
|
submenu.classList.add('active')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
menuItem.addEventListener('mouseleave', function (event) {
|
||||||
|
var submenu = event.target.querySelector('.item.submenu')
|
||||||
|
if (submenu && submenu.classList.contains('active')) {
|
||||||
|
submenu.classList.remove('active')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
menuItem.querySelectorAll('a.item').forEach((link) => {
|
||||||
|
var parent = menuItem.querySelector('a.item')
|
||||||
|
link.addEventListener('click', function (event) {
|
||||||
|
if (window.analytics) {
|
||||||
|
window.analytics.track('Clicked on navbar', {
|
||||||
|
section: parent.textContent.toLowerCase(),
|
||||||
|
submenu: parent.textContent !== event.target.textContent ? event.target.textContent.toLowerCase() : undefined,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})()
|
@ -69,3 +69,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Restore menu position as soon as possible to avoid flickering -->
|
||||||
|
{{ $script := resources.Get "navbar.js" | resources.Minify }} {{ with $script.Content }}
|
||||||
|
<script>
|
||||||
|
{{ . | safeJS }}
|
||||||
|
</script>
|
||||||
|
{{ end }}
|
||||||
|
Loading…
Reference in New Issue
Block a user