diff --git a/js/main.js b/js/main.js index a124769..394e9ab 100644 --- a/js/main.js +++ b/js/main.js @@ -1,4 +1,6 @@ -// ✅ Load header and footer, then initialize navbar script after header injected +// =============================== +// ✅ Load Header & Footer +// =============================== ['header', 'footer'].forEach(id => { const file = id === 'header' ? 'components/header.html' : 'components/footer.html'; fetch(file) @@ -16,7 +18,9 @@ }); }); -// ✅ Pages mapping +// =============================== +// ✅ Routes for SPA Navigation +// =============================== const routes = { "#/": "pages/home.html", "#/our-fund": "pages/our-fund.html", @@ -26,7 +30,134 @@ const routes = { "#/blog": "pages/blog.html", }; -// ✅ Initialize Swiper if present +// =============================== +// ✅ Timeline Data +// =============================== +const timelineData = { + 1983: { + icon: "../assests/images/1983-Icon.png", + heading: "The beginning", + sub: "Set up by Mr. Asit Koticha and Mr. Sameer Koticha, ASK Group offers research-based Investment advisory." + }, + 1991: { + icon: "../assests/images/1991-Icon.png", + heading: "ASK Raymond James", + sub: "ASK Group and Raymond James Financial enter into a Partnership." + }, + 2007: { + icon: "../assests/images/2007-Icon.png", + heading: "Launch of ASK Wealth Advisors", + sub: "Raymond James Financial partnership exits." + }, + 2008: { + icon: "../assests/images/2008-Icon.png", + heading: "Launch of ASK multi-family office", + sub: "" + }, + 2013: { + icon: "../assests/images/2013-Icon.png", + heading: "License from SEBI", + sub: "ASK Wealth Advisors receives an Investment Advisor License from SEBI." + }, + 2015: { + icon: "../assests/images/2015-Icon.png", + heading: "Best Independent Wealth Advisor", + sub: "ASK Wealth Advisors adjudged 'the best Independent Wealth Advisor, 2015' by Wealth Briefing, Asia." + }, + 2016: { + icon: "../assests/images/2016-Icon.png", + heading: "", + sub: "Advent International acquires minority stake in ASK Group." + }, + 2017: { + icon: "../assests/images/2015-Icon.png", + heading: "", + sub: "ASK Wealth Advisors adjudged 'One to Watch - Wealth Manager - India Domestic' - Distinction, 2017 by Asian Private Banker." + }, + 2018: { + icon: "../assests/images/2015-Icon.png", + heading: "ASK launches its first offshore fund - ASK Global Strategies Fund", + sub: "TWICE IN A ROW: ASK Wealth advisors adjudged 'Best Performing Financial Advisor' - Wealth 2016-17 by UTI MF & CNBC TV18." + }, + 2019: { + icon: "../assests/images/1983-Icon.png", + heading: "Hall of Fame", + sub: "ASK Wealth Advisors inducted into the 'Hall of Fame' at the Financial Advisor Awards for 2018-19 and 2019-20 by UTI MF & CNBC TV18." + }, + 2020: { + icon: "../assests/images/2015-Icon.png", + heading: "Outstanding Private Bank", + sub: "Outstanding Private Bank for UNHW clients at the Private Banker International Global Wealth Summit & Awards 2020, Singapore." + }, + 2022: { + icon: "../assests/images/2022-icon.png", + heading: "Blackstone Acquisition", + sub: "Blackstone acquires majority stake in ASK Group. Advent International exits." + } +}; + +// =============================== +// ✅ Initialize Timeline & Swiper +// =============================== +function initTimelineSwiper() { + const swiperWrapper = document.querySelector(".swiper-wrapper"); + const timelineItems = document.querySelectorAll(".timeline-item"); + if (!swiperWrapper || !timelineItems.length) return; + + // Generate Swiper slides + swiperWrapper.innerHTML = ""; + timelineItems.forEach((item) => { + const year = item.dataset.year; + const content = timelineData[year] || { icon: "", heading: "", sub: "" }; + const slide = document.createElement("div"); + slide.classList.add("swiper-slide"); + slide.innerHTML = ` + ${content.icon ? `icon` : ""} +

${year}

+ ${content.heading ? `

${content.heading}

` : ""} + ${content.sub ? `

${content.sub}

` : ""} + `; + swiperWrapper.appendChild(slide); + }); + + // Line fill logic + const lineFill = document.querySelector(".line-fill"); + const totalKites = timelineItems.length; + + function updateTimeline(index) { + timelineItems.forEach((item, i) => { + item.classList.toggle("active", i === index); + }); + const timelineWidth = document.querySelector(".timeline").offsetWidth - 40; + const newWidth = (timelineWidth / (totalKites - 1)) * index; + if (lineFill) lineFill.style.width = newWidth + "px"; + } + + // Initialize Swiper + const swiper = new Swiper(".mySwiper", { + spaceBetween: 20, + centeredSlides: true, + effect: "fade", + autoplay: { + delay: 2500, + disableOnInteraction: false, + }, + navigation: { + nextEl: ".swiper-button-next", + prevEl: ".swiper-button-prev", + } + }); + + swiper.on("slideChange", () => { + updateTimeline(swiper.realIndex); + }); + + updateTimeline(0); +} + +// =============================== +// ✅ Generic Swiper Init (Other Pages) +// =============================== function initSwiper() { if (document.querySelector(".mySwiper")) { new Swiper(".mySwiper", { @@ -41,7 +172,9 @@ function initSwiper() { } } +// =============================== // ✅ Team Drawer +// =============================== window.openDrawer = function (name, role, img, desc) { document.getElementById("drawerName").textContent = name; document.getElementById("drawerRole").textContent = role; @@ -52,9 +185,9 @@ window.openDrawer = function (name, role, img, desc) { drawer.show(); }; -// ============================== -// 🪄 GSAP STACK SCROLL ANIMATION -// ============================== +// =============================== +// ✅ GSAP Stack Scroll Animation +// =============================== let cards = []; let currentIndex = 0; let animating = false; @@ -71,16 +204,13 @@ function initGsapStackScroll() { gsap.set(cards[0], { opacity: 1, y: "0%" }); currentIndex = 0; - // 🎯 Mouse enter/leave detect karein section.addEventListener('mouseenter', () => { isInsideSection = true; }); section.addEventListener('mouseleave', () => { isInsideSection = false; }); - // 🌐 Global scroll listener window.removeEventListener('wheel', window._gsapStackHandler); window._gsapStackHandler = function (e) { - if (!isInsideSection) return; // 📌 agar mouse section ke bahar hai to kuch mat karo - - e.preventDefault(); // ✅ sirf section ke andar scroll disable karo + if (!isInsideSection) return; + e.preventDefault(); if (animating) return; if (e.deltaY > 0) { @@ -124,7 +254,9 @@ function showPrevGsapCard() { currentIndex--; } -// ✅ Load page content dynamically +// =============================== +// ✅ Load Page Content Dynamically +// =============================== function loadPage() { const hash = location.hash || "#/"; const page = routes[hash] || routes["#/"]; @@ -133,22 +265,20 @@ function loadPage() { .then(res => res.text()) .then(html => { document.getElementById("page-content").innerHTML = html; - - // ✅ Scroll to top after page load window.scrollTo({ top: 0, behavior: "smooth" }); - // ✅ Re-init Swiper if present + // Init all components after content load initSwiper(); - - // ✅ Re-init GSAP scroll stack animation + initTimelineSwiper(); initGsapStackScroll(); - }) .catch(() => { document.getElementById("page-content").innerHTML = "

Page not found

"; }); } -// ✅ Event listener for routing +// =============================== +// ✅ Router Event Listener +// =============================== window.addEventListener("hashchange", loadPage); -loadPage(); // default page load +loadPage(); // Default load diff --git a/pages/about.html b/pages/about.html index 29a970e..f0b5d8e 100644 --- a/pages/about.html +++ b/pages/about.html @@ -1,20 +1,4 @@ - - - - - - - - - - - - - - - - - +
- - - - - - - - - -