i need only one page privacy policy page for my App BundleBlitz. my support email: hello@moneyed28.com: Privacy Policy for BundleBlitz
6e3c3ba verified | // Intersection Observer for Table of Contents highlighting | |
| document.addEventListener('DOMContentLoaded', function() { | |
| const sections = document.querySelectorAll('.policy-section'); | |
| const tocLinks = document.querySelectorAll('.toc-link'); | |
| // Create intersection observer | |
| const observerOptions = { | |
| root: null, | |
| rootMargin: '-20% 0px -80% 0px', // Trigger when section is near top | |
| threshold: 0 | |
| }; | |
| const observer = new IntersectionObserver((entries) => { | |
| entries.forEach(entry => { | |
| if (entry.isIntersecting) { | |
| // Remove active class from all links | |
| tocLinks.forEach(link => { | |
| link.classList.remove('active'); | |
| }); | |
| // Add active class to current link | |
| const activeLink = document.querySelector(`.toc-link[href="#${entry.target.id}"]`); | |
| if (activeLink) { | |
| activeLink.classList.add('active'); | |
| } | |
| } | |
| }); | |
| }, observerOptions); | |
| // Observe all sections | |
| sections.forEach(section => { | |
| observer.observe(section); | |
| }); | |
| // Smooth scroll for anchor links | |
| document.querySelectorAll('a[href^="#"]').forEach(anchor => { | |
| anchor.addEventListener('click', function (e) { | |
| e.preventDefault(); | |
| const target = document.querySelector(this.getAttribute('href')); | |
| if (target) { | |
| const headerOffset = 100; | |
| const elementPosition = target.getBoundingClientRect().top; | |
| const offsetPosition = elementPosition + window.pageYOffset - headerOffset; | |
| window.scrollTo({ | |
| top: offsetPosition, | |
| behavior: 'smooth' | |
| }); | |
| } | |
| }); | |
| }); | |
| // Update copyright year dynamically | |
| const yearElements = document.querySelectorAll('.current-year'); | |
| yearElements.forEach(el => { | |
| el.textContent = new Date().getFullYear(); | |
| }); | |
| // Mobile menu toggle (if needed in future) | |
| const mobileMenuBtn = document.getElementById('mobile-menu-btn'); | |
| const mobileMenu = document.getElementById('mobile-menu'); | |
| if (mobileMenuBtn && mobileMenu) { | |
| mobileMenuBtn.addEventListener('click', function() { | |
| mobileMenu.classList.toggle('hidden'); | |
| }); | |
| } | |
| }); | |
| // Print functionality | |
| function printPolicy() { | |
| window.print(); | |
| } |