123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- /**
- * Template Name: iLanding
- * Template URL: https://bootstrapmade.com/ilanding-bootstrap-landing-page-template/
- * Updated: Nov 12 2024 with Bootstrap v5.3.3
- * Author: BootstrapMade.com
- * License: https://bootstrapmade.com/license/
- */
-
- (function() {
- "use strict";
-
- /**
- * Apply .scrolled class to the body as the page is scrolled down
- */
- function toggleScrolled() {
- const selectBody = document.querySelector('body');
- const selectHeader = document.querySelector('#header');
- if (!selectHeader.classList.contains('scroll-up-sticky') && !selectHeader.classList.contains('sticky-top') && !selectHeader.classList.contains('fixed-top')) return;
- window.scrollY > 100 ? selectBody.classList.add('scrolled') : selectBody.classList.remove('scrolled');
- }
-
- document.addEventListener('scroll', toggleScrolled);
- window.addEventListener('load', toggleScrolled);
-
- /**
- * Mobile nav toggle
- */
- const mobileNavToggleBtn = document.querySelector('.mobile-nav-toggle');
-
- function mobileNavToogle() {
- document.querySelector('body').classList.toggle('mobile-nav-active');
- mobileNavToggleBtn.classList.toggle('bi-list');
- mobileNavToggleBtn.classList.toggle('bi-x');
- }
- if (mobileNavToggleBtn) {
- mobileNavToggleBtn.addEventListener('click', mobileNavToogle);
- }
-
- /**
- * Hide mobile nav on same-page/hash links
- */
- document.querySelectorAll('#navmenu a').forEach(navmenu => {
- navmenu.addEventListener('click', () => {
- if (document.querySelector('.mobile-nav-active')) {
- mobileNavToogle();
- }
- });
-
- });
-
- /**
- * Toggle mobile nav dropdowns
- */
- document.querySelectorAll('.navmenu .toggle-dropdown').forEach(navmenu => {
- navmenu.addEventListener('click', function(e) {
- e.preventDefault();
- this.parentNode.classList.toggle('active');
- this.parentNode.nextElementSibling.classList.toggle('dropdown-active');
- e.stopImmediatePropagation();
- });
- });
-
- /**
- * Scroll top button
- */
- let scrollTop = document.querySelector('.scroll-top');
-
- function toggleScrollTop() {
- if (scrollTop) {
- window.scrollY > 100 ? scrollTop.classList.add('active') : scrollTop.classList.remove('active');
- }
- }
- scrollTop.addEventListener('click', (e) => {
- e.preventDefault();
- window.scrollTo({
- top: 0,
- behavior: 'smooth'
- });
- });
-
- window.addEventListener('load', toggleScrollTop);
- document.addEventListener('scroll', toggleScrollTop);
-
- /**
- * Animation on scroll function and init
- */
- function aosInit() {
- AOS.init({
- duration: 600,
- easing: 'ease-in-out',
- once: true,
- mirror: false
- });
- }
- window.addEventListener('load', aosInit);
-
- /**
- * Initiate glightbox
- */
- const glightbox = GLightbox({
- selector: '.glightbox'
- });
-
- /**
- * Init swiper sliders
- */
- function initSwiper() {
- document.querySelectorAll(".init-swiper").forEach(function(swiperElement) {
- let config = JSON.parse(
- swiperElement.querySelector(".swiper-config").innerHTML.trim()
- );
-
- if (swiperElement.classList.contains("swiper-tab")) {
- initSwiperWithCustomPagination(swiperElement, config);
- } else {
- new Swiper(swiperElement, config);
- }
- });
- }
-
- window.addEventListener("load", initSwiper);
-
- /**
- * Initiate Pure Counter
- */
- new PureCounter();
-
- /**
- * Frequently Asked Questions Toggle
- */
- document.querySelectorAll('.faq-item h3, .faq-item .faq-toggle').forEach((faqItem) => {
- faqItem.addEventListener('click', () => {
- faqItem.parentNode.classList.toggle('faq-active');
- });
- });
-
- /**
- * 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);
- }
- }
- const page = window.location.pathname;
- document.querySelectorAll('#navmenu li').forEach(item => {
- // Your logic here
- debugger;
- const link = item.querySelector('a');
- let route = link.getAttribute('href');
- if(page !== '/')
- route = '/'+route;
- if(route === page)
- link.classList.add('active')
- console.log(item.textContent); // Example: logs the text content of each <li>
- });
- });
-
- /**
- * Navmenu Scrollspy
- */
- let navmenulinks = document.querySelectorAll('.navmenu a');
-
- function navmenuScrollspy() {
- navmenulinks.forEach(navmenulink => {
- if (!navmenulink.hash) return;
- let section = document.querySelector(navmenulink.hash);
- if (!section) return;
- let position = window.scrollY + 200;
- if (position >= section.offsetTop && position <= (section.offsetTop + section.offsetHeight)) {
- document.querySelectorAll('.navmenu a.active').forEach(link => link.classList.remove('active'));
- navmenulink.classList.add('active');
- } else {
- navmenulink.classList.remove('active');
- }
- })
- }
- window.addEventListener('load', navmenuScrollspy);
- document.addEventListener('scroll', navmenuScrollspy);
-
- })();
|