A continuation of ch01-manifesto.html. The complete source identity, every recorded occurrence, and linked equations are on its first page.
Source transcript · continued
Download complete source text ↓1,635 lines · 41.8 KB
}
});
gsap.to('#timelineSubtitle', {
opacity: 1,
y: 0,
duration: 1,
delay: 0.2,
ease: 'power3.out',
scrollTrigger: {
trigger: '#timelineSubtitle',
start: 'top 80%',
toggleActions: 'play none none reverse'
}
});
gsap.from('#timelineSubtitle', {
y: 30,
duration: 1,
ease: 'power3.out',
scrollTrigger: {
trigger: '#timelineSubtitle',
start: 'top 80%',
toggleActions: 'play none none reverse'
}
});
// Timeline items stagger
for (let i = 1; i <= 5; i++) {
gsap.to(`#timeline${i}`, {
opacity: 1,
x: 0,
duration: 1,
ease: 'power3.out',
scrollTrigger: {
trigger: `#timeline${i}`,
start: 'top 85%',
toggleActions: 'play none none reverse'
}
});
gsap.from(`#timeline${i}`, {
x: 50,
duration: 1,
ease: 'power3.out',
scrollTrigger: {
trigger: `#timeline${i}`,
start: 'top 85%',
toggleActions: 'play none none reverse'
}
});
}
// Final section
gsap.to('#finalText', {
opacity: 1,
y: 0,
duration: 1.5,
ease: 'power3.out',
scrollTrigger: {
trigger: '#finalText',
start: 'top 70%',
toggleActions: 'play none none reverse'
}
});
gsap.from('#finalText', {
y: 60,
duration: 1.5,
ease: 'power3.out',
scrollTrigger: {
trigger: '#finalText',
start: 'top 70%',
toggleActions: 'play none none reverse'
}
});
gsap.to('#finalSignature', {
opacity: 1,
y: 0,
duration: 1.2,
delay: 0.3,
ease: 'power3.out',
scrollTrigger: {
trigger: '#finalSignature',
start: 'top 80%',
toggleActions: 'play none none reverse'
}
});
gsap.from('#finalSignature', {
y: 40,
duration: 1.2,
ease: 'power3.out',
scrollTrigger: {
trigger: '#finalSignature',
start: 'top 80%',
toggleActions: 'play none none reverse'
}
});
// Parallax effects
document.querySelectorAll('.parallax-layer').forEach(layer => {
const speed = parseFloat(layer.dataset.speed) || 0.2;
gsap.to(layer, {
yPercent: -20 * speed,
ease: 'none',
scrollTrigger: {
trigger: layer.parentElement,
start: 'top bottom',
end: 'bottom top',
scrub: true
}
});
});
}
// ===== SCROLL PROGRESS =====
const navProgress = document.getElementById('navProgress');
window.addEventListener('scroll', () => {
const scrollTop = window.scrollY;
const docHeight = document.documentElement.scrollHeight - window.innerHeight;
const scrollPercent = (scrollTop / docHeight) * 100;
navProgress.style.width = scrollPercent + '%';
});
// ===== SMOOTH SCROLL INDICATOR CLICK =====
document.getElementById('scrollIndicator').addEventListener('click', () => {
window.scrollTo({
top: window.innerHeight,
behavior: 'smooth'
});
});
</script>
</body>
</html>