bootstrap-italia
Version:
Bootstrap Italia è un tema Bootstrap 4 per la creazione di applicazioni web nel pieno rispetto delle Linee guida di design per i servizi web della PA
73 lines (67 loc) • 2.17 kB
JavaScript
$(function() {
var openbutton = $('.custom-navbar-toggler')
var closebutton = $('.close-div')
var overlay = $('.overlay')
var backbutton = $('.it-back-button')
var navlink = $('.navbar-collapsable a')
$('.it-bottom-navscroll ul li a[href^="#"]').on('click', function(e) {
e.preventDefault()
var hash = this.hash
$('html, body').animate(
{
scrollTop: $(hash).offset().top,
},
600,
function() {
if (history.pushState) {
history.pushState(null, null, hash)
} else {
location.hash = hash
}
}
)
//close window on click
$(overlay).trigger('click')
})
// navscroll back function
$(backbutton).click(function(event) {
$(overlay).trigger('click')
$(this).fadeOut()
event.preventDefault()
})
// navscroll item on scroll
$(window)
.on('scroll', function() {
var sectionsContainerTop = $('.it-page-sections-container').length ? $(".it-page-sections-container").offset().top : 0
var scrollDistance = $(window).scrollTop() - sectionsContainerTop
// Assign active class to nav links while scolling
$('.it-page-section').each(function(i) {
if ($(this).position().top <= scrollDistance) {
$('.it-navscroll-wrapper .menu-wrapper a.active').removeClass(
'active'
)
$('.it-navscroll-wrapper .menu-wrapper a')
.eq(i)
.addClass('active')
var parentsection = $('.it-navscroll-wrapper .menu-wrapper a')
.eq(i)
.closest('ul')
.prev('a')
var parentparentsection = $(parentsection)
.closest('ul')
.prev('a')
$(parentsection).addClass('active')
$(parentparentsection).addClass('active')
var textContent = $('.it-navscroll-wrapper .menu-wrapper a')
.eq(i)
.find('span')
.text()
var $btn = $('.it-navscroll-wrapper .custom-navbar-toggler')
var $icon = $btn.find('span.it-list')
$btn.text(textContent)
$btn.prepend($icon)
}
})
})
.scroll()
})