/** * Template Name: Append * Updated: Jun 20 2023 with Bootstrap v5.3.0 * Template URL: https://bootstrapmade.com/append-bootstrap-website-template/ * Author: BootstrapMade.com * License: https://bootstrapmade.com/license/ */ document.addEventListener('DOMContentLoaded', () => { "use strict"; /** * Scroll top button */ let scrollTop = document.querySelector('.scroll-top'); /** * Preloader */ const preloader = document.querySelector('#preloader'); if (preloader) { window.addEventListener('load', () => { preloader.remove(); }); } /** * Correct scrolling position upon page load for URLs containing hash links. */ window.addEventListener('load', function(e) { if (window.location.hash) { if (document.querySelector(window.location.hash)) { setTimeout(() => { let section = document.querySelector(window.location.hash); let scrollMarginTop = getComputedStyle(section).scrollMarginTop; window.scrollTo({ top: section.offsetTop - parseInt(scrollMarginTop), behavior: 'smooth' }); }, 100); } } }); /** * Initiate glightbox */ const glightbox = GLightbox({ selector: '.glightbox' }); /** * Initiate Pure Counter */ new PureCounter(); /** * Init isotope layout and filters */ function initIsotopeLayout() { document.querySelectorAll('.isotope-layout').forEach(function(isotopeItem) { let layout = isotopeItem.getAttribute('data-layout') ?? 'masonry'; let filter = isotopeItem.getAttribute('data-default-filter') ?? '*'; let sort = isotopeItem.getAttribute('data-sort') ?? 'original-order'; let initIsotope = new Isotope(isotopeItem.querySelector('.isotope-container'), { itemSelector: '.isotope-item', layoutMode: layout, filter: filter, sortBy: sort }); isotopeItem.querySelectorAll('.isotope-filters li').forEach(function(filters) { filters.addEventListener('click', function() { isotopeItem.querySelector('.isotope-filters .filter-active').classList.remove('filter-active'); this.classList.add('filter-active'); initIsotope.arrange({ filter: this.getAttribute('data-filter') }); if (typeof aosInit === 'function') { aosInit(); } }, false); }); }); } window.addEventListener('load', initIsotopeLayout); /** * Frequently Asked Questions Toggle */ document.querySelectorAll('.faq-item h3, .faq-item .faq-toggle').forEach((faqItem) => { faqItem.addEventListener('click', () => { faqItem.parentNode.classList.toggle('faq-active'); }); }); /** * Init swiper sliders */ function initSwiper() { document.querySelectorAll('.swiper').forEach(function(swiper) { let config = JSON.parse(swiper.querySelector('.swiper-config').innerHTML.trim()); new Swiper(swiper, config); }); } window.addEventListener('load', initSwiper); /** * Animation on scroll function and init */ function aosInit() { AOS.init({ duration: 600, easing: 'ease-in-out', once: true, mirror: false }); } window.addEventListener('load', aosInit); });