1/* 2 * Secundarias v2 (29-sep-2026): reveal al scroll con stagger, copia de assets/js/about.js. 3 * Vanilla, sin dependencias. Solo corre si existe .z2. 4 */ 5(function () { 6 'use strict'; 7 8 var root = document.querySelector('.z2'); 9 var doc = document.documentElement; 10 window.z2Ready = true; 11 if (!root) { 12 doc.classList.remove('z2-js'); 13 return; 14 } 15 var each = function (sel, fn, ctx) { 16 Array.prototype.forEach.call((ctx || root).querySelectorAll(sel), fn); 17 }; 18 19 /* reveal: fade + 16 px, 80 ms entre hermanos de un grupo */ 20 each('[data-z2-stagger]', function (group) { 21 var i = 0; 22 Array.prototype.forEach.call(group.children, function (el) { 23 if (el.classList.contains('z2-reveal')) { 24 el.style.setProperty('--z2-d', (i++ % 8) * 80 + 'ms'); 25 } 26 }); 27 }); 28 29 var show = function (el) { 30 el.classList.add('is-in'); 31 }; 32 var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; 33 if (reduce || !('IntersectionObserver' in window)) { 34 each('.z2-reveal', show); 35 } else { 36 var io = new IntersectionObserver(function (entries) { 37 entries.forEach(function (entry) { 38 if (entry.isIntersecting) { 39 show(entry.target); 40 io.unobserve(entry.target); 41 } 42 }); 43 }, { rootMargin: '0px 0px -6% 0px', threshold: 0.01 }); 44 each('.z2-reveal', function (el) { 45 io.observe(el); 46 }); 47 } 48})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.