1class TimelineVertical { 2 constructor(){ 3 this.init(); 4 } 5 6 init(){ 7 //if(!document.querySelector('.block.timeline-vertical.current-block')) return; 8 const animatedBlocks = document.querySelectorAll('.block.timeline-vertical.special-animation'); 9 if(!animatedBlocks.length) return; 10 /*animatedBlocks.forEach(block => { 11 if(block.classList.contains('current-block')) return; 12 block.querySelectorAll('.timeline-element').forEach(item => item.classList.add('inview')); 13 });*/ 14 const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 15 if(reduceMotion){ 16 animatedBlocks.forEach(block => { 17 block.querySelectorAll('.timeline-element').forEach(item => item.classList.add('inview')); 18 }); 19 return; 20 } 21 const observer = new IntersectionObserver((entries, obs) => { 22 entries.forEach(entry => { 23 if(!entry.isIntersecting) return; 24 entry.target.classList.add('inview'); 25 obs.unobserve(entry.target); 26 }); 27 },{ 28 root:null, 29 rootMargin:'0px 0px -10% 0px', 30 threshold:.15 31 }); 32 animatedBlocks.forEach(block => { 33 block.querySelectorAll('.timeline-element').forEach(item => observer.observe(item)); 34 }); 35 } 36} 37 38uaReadyInteractive(() => new TimelineVertical());
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.