diff --git a/theme/assets/js/demo-animator.js b/theme/assets/js/demo-animator.js index a883663..32cfdad 100644 --- a/theme/assets/js/demo-animator.js +++ b/theme/assets/js/demo-animator.js @@ -50,8 +50,8 @@ mutations.forEach(function (m) { var card = m.target; if (!card.classList.contains('scroll-visible')) return; - - mo.unobserve(card); + if (card._oribiAnimated) return; + card._oribiAnimated = true; // Trigger icon pop ~150ms after the card itself starts fading in. // Supports both .feature-icon (feature-cards) and .value-icon (value-cards). diff --git a/theme/assets/js/main.js b/theme/assets/js/main.js index 9be33b6..81c5977 100644 --- a/theme/assets/js/main.js +++ b/theme/assets/js/main.js @@ -744,27 +744,6 @@ document.addEventListener('DOMContentLoaded', () => { stages.forEach(function (stage) { io.observe(stage); }); } - /* ── Pricing billing toggle ─────────────────────────────── */ - document.querySelectorAll('.pricing-billing-toggle').forEach(function(toggle) { - toggle.addEventListener('click', function(e) { - var btn = e.target.closest('.pbt-option'); - if (!btn) return; - var billing = btn.dataset.billing; - toggle.querySelectorAll('.pbt-option').forEach(function(b) { - b.classList.toggle('active', b === btn); - b.setAttribute('aria-pressed', b === btn ? 'true' : 'false'); - }); - var section = toggle.closest('section'); - if (!section) return; - section.querySelectorAll('.pbt-show-monthly').forEach(function(el) { - el.hidden = (billing === 'annual'); - }); - section.querySelectorAll('.pbt-show-annual').forEach(function(el) { - el.hidden = (billing === 'monthly'); - }); - }); - }); - function startTsSlides(stage) { var slides = stage.querySelectorAll('.ts-slide'); if (!slides.length) return; @@ -778,3 +757,28 @@ document.addEventListener('DOMContentLoaded', () => { }, 3000); } })(); + +/* ── Pricing billing toggle ──────────────────────────────────────────────── */ +(function () { + document.addEventListener('DOMContentLoaded', function () { + document.querySelectorAll('.pricing-billing-toggle').forEach(function (toggle) { + toggle.addEventListener('click', function (e) { + var btn = e.target.closest('.pbt-option'); + if (!btn) return; + var billing = btn.dataset.billing; + toggle.querySelectorAll('.pbt-option').forEach(function (b) { + b.classList.toggle('active', b === btn); + b.setAttribute('aria-pressed', b === btn ? 'true' : 'false'); + }); + var section = toggle.closest('section'); + if (!section) return; + section.querySelectorAll('.pbt-show-monthly').forEach(function (el) { + el.hidden = (billing === 'annual'); + }); + section.querySelectorAll('.pbt-show-annual').forEach(function (el) { + el.hidden = (billing === 'monthly'); + }); + }); + }); + }); +}());