PageSourceSearch

https://pablomartin.com/wp-content/themes/pmartin/assets/js/contact.js?ver=0.4.0.1790693170

js pablomartin.com collected 2026-10-04 06:05:28 UTC 1,349 bytes, 48 lines download raw bytes

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.