updates
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
/* Description: Custom JS file */
|
||||
|
||||
/* Navigation*/
|
||||
// Collapse the navbar by adding the top-nav-collapse class
|
||||
window.onscroll = function () {
|
||||
scrollFunction();
|
||||
scrollFunctionBTT(); // back to top button
|
||||
};
|
||||
|
||||
window.onload = function () {
|
||||
scrollFunction();
|
||||
};
|
||||
|
||||
function scrollFunction() {
|
||||
if (document.documentElement.scrollTop > 30) {
|
||||
document.getElementById("navbarExample").classList.add("top-nav-collapse");
|
||||
} else if ( document.documentElement.scrollTop < 30 ) {
|
||||
document.getElementById("navbarExample").classList.remove("top-nav-collapse");
|
||||
}
|
||||
}
|
||||
|
||||
// Navbar on mobile
|
||||
let elements = document.querySelectorAll(".nav-link:not(.dropdown-toggle)");
|
||||
|
||||
for (let i = 0; i < elements.length; i++) {
|
||||
elements[i].addEventListener("click", () => {
|
||||
document.querySelector(".offcanvas-collapse").classList.toggle("open");
|
||||
});
|
||||
}
|
||||
|
||||
document.querySelector(".navbar-toggler").addEventListener("click", () => {
|
||||
document.querySelector(".offcanvas-collapse").classList.toggle("open");
|
||||
});
|
||||
|
||||
// Hover on desktop
|
||||
function toggleDropdown(e) {
|
||||
const _d = e.target.closest(".dropdown");
|
||||
let _m = document.querySelector(".dropdown-menu", _d);
|
||||
|
||||
setTimeout(
|
||||
function () {
|
||||
const shouldOpen = _d.matches(":hover");
|
||||
_m.classList.toggle("show", shouldOpen);
|
||||
_d.classList.toggle("show", shouldOpen);
|
||||
|
||||
_d.setAttribute("aria-expanded", shouldOpen);
|
||||
},
|
||||
e.type === "mouseleave" ? 300 : 0
|
||||
);
|
||||
}
|
||||
|
||||
// On hover
|
||||
const dropdownCheck = document.querySelector('.dropdown');
|
||||
|
||||
if (dropdownCheck !== null) {
|
||||
document.querySelector(".dropdown").addEventListener("mouseleave", toggleDropdown);
|
||||
document.querySelector(".dropdown").addEventListener("mouseover", toggleDropdown);
|
||||
|
||||
// On click
|
||||
document.querySelector(".dropdown").addEventListener("click", (e) => {
|
||||
const _d = e.target.closest(".dropdown");
|
||||
let _m = document.querySelector(".dropdown-menu", _d);
|
||||
if (_d.classList.contains("show")) {
|
||||
_m.classList.remove("show");
|
||||
_d.classList.remove("show");
|
||||
} else {
|
||||
_m.classList.add("show");
|
||||
_d.classList.add("show");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/* Card Slider - Swiper */
|
||||
var cardSlider = new Swiper('.card-slider', {
|
||||
autoplay: {
|
||||
delay: 5000,
|
||||
disableOnInteraction: false
|
||||
},
|
||||
loop: true,
|
||||
navigation: {
|
||||
nextEl: '.swiper-button-next',
|
||||
prevEl: '.swiper-button-prev'
|
||||
},
|
||||
slidesPerView: 2,
|
||||
spaceBetween: 70,
|
||||
breakpoints: {
|
||||
// when window is <= 991px
|
||||
991: {
|
||||
slidesPerView: 1
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/* Filter - Isotope */
|
||||
const gridCheck = document.querySelector('.grid');
|
||||
|
||||
if (gridCheck !== null) {
|
||||
// init Isotope
|
||||
var iso = new Isotope( '.grid', {
|
||||
itemSelector: '.element-item',
|
||||
layoutMode: 'fitRows'
|
||||
});
|
||||
|
||||
// bind filter button click
|
||||
var filtersElem = document.querySelector('.filters-button-group');
|
||||
filtersElem.addEventListener( 'click', function( event ) {
|
||||
// only work with buttons
|
||||
if ( !matchesSelector( event.target, 'button' ) ) {
|
||||
return;
|
||||
}
|
||||
var filterValue = event.target.getAttribute('data-filter');
|
||||
// use matching filter function
|
||||
iso.arrange({ filter: filterValue });
|
||||
});
|
||||
|
||||
// change is-checked class on buttons
|
||||
var buttonGroups = document.querySelectorAll('.button-group');
|
||||
for ( var i=0, len = buttonGroups.length; i < len; i++ ) {
|
||||
var buttonGroup = buttonGroups[i];
|
||||
radioButtonGroup( buttonGroup );
|
||||
}
|
||||
|
||||
function radioButtonGroup( buttonGroup ) {
|
||||
buttonGroup.addEventListener( 'click', function( event ) {
|
||||
// only work with buttons
|
||||
if ( !matchesSelector( event.target, 'button' ) ) {
|
||||
return;
|
||||
}
|
||||
buttonGroup.querySelector('.is-checked').classList.remove('is-checked');
|
||||
event.target.classList.add('is-checked');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Back To Top Button */
|
||||
// Get the button
|
||||
myButton = document.getElementById("myBtn");
|
||||
|
||||
// When the user scrolls down 20px from the top of the document, show the button
|
||||
function scrollFunctionBTT() {
|
||||
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
|
||||
myButton.style.display = "block";
|
||||
} else {
|
||||
myButton.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
// When the user clicks on the button, scroll to the top of the document
|
||||
function topFunction() {
|
||||
document.body.scrollTop = 0; // for Safari
|
||||
document.documentElement.scrollTop = 0; // for Chrome, Firefox, IE and Opera
|
||||
}
|
||||
Reference in New Issue
Block a user