282 lines
4.3 KiB
JavaScript
282 lines
4.3 KiB
JavaScript
// animation
|
|
|
|
/**
|
|
* gsap lib https://greensock.com/get-started-2#controllingYourAnimations
|
|
*/
|
|
let development_debug = false
|
|
// development_debug = true
|
|
|
|
let enable_animations = false
|
|
enable_animations = true
|
|
|
|
const rotateYCard = '200deg'
|
|
const offsetCard = '10'
|
|
|
|
function animateCard (id, side) {
|
|
|
|
console.log('animateCard', id, side, offsetCard)
|
|
const fromObject = {
|
|
rotateY: rotateYCard,
|
|
// side: offsetCard
|
|
}
|
|
|
|
let toObject = {
|
|
rotateY: 0,
|
|
duration: 0.2,
|
|
ease: 'easeInOut',
|
|
// side: 1,
|
|
scrollTrigger: {
|
|
trigger: '#content-' + id + ' .flip-handle',
|
|
start: 'top 80%',
|
|
scrub: 1,
|
|
markers: development_debug,
|
|
}
|
|
}
|
|
fromObject[side] = 0;
|
|
toObject[side] = offsetCard;
|
|
|
|
gsap.fromTo('#content-' + id, fromObject,
|
|
toObject)
|
|
}
|
|
|
|
if (enable_animations) {
|
|
console.log('start animations')
|
|
|
|
gsap.fromTo('#for_all_your', {
|
|
opacity: 0,
|
|
top: 100,
|
|
scale:0.5,
|
|
},
|
|
{
|
|
opacity: 1,
|
|
top:0,
|
|
scale:1,
|
|
duration: 0.25,
|
|
scrollTrigger: {
|
|
trigger: '#for_all_your',
|
|
start: 'top bottom'
|
|
}
|
|
})
|
|
gsap.fromTo('#for_all_your_2', {
|
|
opacity: 0,
|
|
scale:0.5,
|
|
},
|
|
{
|
|
opacity: 1,
|
|
duration: 1,
|
|
scale:1,
|
|
scrollTrigger: {
|
|
trigger: '#for_all_your_2',
|
|
delay: 0.4,
|
|
start: 'top bottom'
|
|
}
|
|
})
|
|
|
|
gsap.fromTo('#unlock_white', {
|
|
opacity: 0,
|
|
},
|
|
{
|
|
opacity: 1,
|
|
scrollTrigger: {
|
|
trigger: '#unlock_white',
|
|
delay: 1,
|
|
scrub:2,
|
|
start: '+50% 80%'
|
|
}
|
|
})
|
|
|
|
|
|
gsap.to('#main_title', {
|
|
delay: 1,
|
|
// xPercent: ()=>nav.offsetHeight,
|
|
scrollTrigger: {
|
|
trigger: '#main_title',
|
|
scrub: 1,
|
|
markers: development_debug,
|
|
},
|
|
keyframes: [
|
|
{
|
|
top: '-50',
|
|
width: '100vw',
|
|
},
|
|
{
|
|
top: '-50',
|
|
width: "-5vw",
|
|
},
|
|
{
|
|
top: '-100',
|
|
width: '-40vw',
|
|
}]
|
|
})
|
|
|
|
gsap.fromTo('#hand',
|
|
{
|
|
top: -200,
|
|
opacity: 1,
|
|
},
|
|
{
|
|
top: 500,
|
|
duration: 1,
|
|
opacity: 0,
|
|
scrollTrigger: {
|
|
trigger: '#cover',
|
|
scrub: 1,
|
|
markers: development_debug,
|
|
}
|
|
})
|
|
|
|
gsap.to('#phone-watches-1',
|
|
{
|
|
left: 500,
|
|
top: -200,
|
|
scale: 0.8,
|
|
duration: 1.5,
|
|
ease: 'sine',
|
|
scrollTrigger: {
|
|
trigger: '#welcome',
|
|
scrub: 1,
|
|
delay: 1,
|
|
markers: development_debug,
|
|
}
|
|
})
|
|
|
|
gsap.to('#phone-watches-2',
|
|
{
|
|
left: '50vw',
|
|
top: 100,
|
|
scale: 0.7,
|
|
duration: 1.25,
|
|
ease: 'sine',
|
|
scrollTrigger: {
|
|
trigger: '#welcome',
|
|
scrub: 1,
|
|
delay: 0.5,
|
|
markers: development_debug,
|
|
}
|
|
})
|
|
gsap.to('#phone-watches-3',
|
|
{
|
|
left: '50vw',
|
|
top: 0,
|
|
scale: 0.8,
|
|
duration: 1.25,
|
|
ease: 'sine',
|
|
scrollTrigger: {
|
|
trigger: '#welcome',
|
|
scrub: 2,
|
|
markers: development_debug,
|
|
}
|
|
})
|
|
gsap.to('#phone-watches-4',
|
|
{
|
|
left: '50vw',
|
|
top: -10,
|
|
scale: 0.5,
|
|
duration: 3,
|
|
ease: 'sine',
|
|
scrollTrigger: {
|
|
trigger: '#welcome',
|
|
scrub: 2,
|
|
markers: development_debug,
|
|
}
|
|
})
|
|
|
|
gsap.fromTo('#content_first',
|
|
{
|
|
scale: 0.5,
|
|
opacity: 0.15,
|
|
},
|
|
{
|
|
opacity: 1,
|
|
scale: 0.6,
|
|
ease: 'easeInOut',
|
|
scrollTrigger: {
|
|
trigger: '#content',
|
|
scrub: 1,
|
|
markers: development_debug,
|
|
}
|
|
})
|
|
|
|
gsap.fromTo('#content_second',
|
|
{
|
|
scale: 0.8,
|
|
left: -50,
|
|
opacity: 0.15,
|
|
top: -20,
|
|
},
|
|
{
|
|
left: -40,
|
|
top: -50,
|
|
opacity: 1,
|
|
duration: 2,
|
|
scale: 0.9,
|
|
ease: 'spline',
|
|
scrollTrigger: {
|
|
trigger: '#content',
|
|
scrub: 0.5,
|
|
markers: development_debug,
|
|
}
|
|
})
|
|
|
|
// le background coloré grandit légèrement
|
|
gsap.fromTo('#content_all_img',
|
|
{
|
|
scale: 1,
|
|
left: "-100"
|
|
},
|
|
{
|
|
scale: 1.1,
|
|
left: 0,
|
|
ease: 'linear',
|
|
scrollTrigger: {
|
|
trigger: '#content_all .columns',
|
|
scrub: 1,
|
|
markers: development_debug,
|
|
}
|
|
})
|
|
|
|
// TODO faire devenir fixe le background une fois que l'on est passé
|
|
gsap.fromTo('#open img',
|
|
{
|
|
opacity: 0.5,
|
|
scale: 1,
|
|
bottom: '-100vh',
|
|
height: '10rem',
|
|
},
|
|
{
|
|
opacity: 1,
|
|
bottom: '50vh',
|
|
scale: 1.5,
|
|
ease: 'spline',
|
|
height: '11rem',
|
|
scrollTrigger: {
|
|
trigger: '#open-handle',
|
|
scrub: 2,
|
|
markers: development_debug,
|
|
}
|
|
})
|
|
|
|
// flip from right
|
|
gsap.fromTo('#content-2', {
|
|
rotateY: rotateYCard,
|
|
right: offsetCard,
|
|
},
|
|
{
|
|
rotateY: 0,
|
|
right: 0,
|
|
duration: 0.2,
|
|
ease: 'easeInOut',
|
|
scrollTrigger: {
|
|
trigger: '#content-2 .flip-handle',
|
|
scrub: 1,
|
|
markers: development_debug,
|
|
}
|
|
})
|
|
|
|
animateCard(2, 'right')
|
|
animateCard(3, 'left')
|
|
animateCard(4, 'right')
|
|
animateCard(5, 'left')
|
|
}
|
|
|