starting to animate imagesection
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="js">
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import { onMounted, onUnmounted, ref } from "vue"
|
|||||||
import gsap from "gsap"
|
import gsap from "gsap"
|
||||||
|
|
||||||
import ScrollTrigger from "gsap/ScrollTrigger"
|
import ScrollTrigger from "gsap/ScrollTrigger"
|
||||||
|
|
||||||
|
|
||||||
gsap.registerPlugin(ScrollTrigger)
|
gsap.registerPlugin(ScrollTrigger)
|
||||||
|
|
||||||
|
|
||||||
@@ -51,15 +53,16 @@ function startNextAnimation() {
|
|||||||
tl = gsap.timeline({
|
tl = gsap.timeline({
|
||||||
scrollTrigger: {
|
scrollTrigger: {
|
||||||
trigger: ".scroll-trigger-ready__worm-wrap",
|
trigger: ".scroll-trigger-ready__worm-wrap",
|
||||||
start: "top 00%",
|
start: "top top",
|
||||||
end: "bottom 35%",
|
end: "bottom 35%",
|
||||||
scrub: 2
|
scrub: 2,
|
||||||
|
pin: true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
tl.to(boxes, {
|
tl.to(boxes, {
|
||||||
y: () => gsap.utils.random(-400, -150),
|
y: () => gsap.utils.random(-400, -150),
|
||||||
|
duration : 3.5,
|
||||||
rotate: () => gsap.utils.random(-180, 180),
|
rotate: () => gsap.utils.random(-180, 180),
|
||||||
ease: "none",
|
ease: "none",
|
||||||
stagger: 0.05
|
stagger: 0.05
|
||||||
@@ -79,6 +82,7 @@ onMounted(() => {
|
|||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
ctx?.revert()
|
ctx?.revert()
|
||||||
|
scrollTrigger.getAll().forEach(t => t.kill())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="js">
|
||||||
import ski from '../../assets/myself/ski.png'
|
import ski from '../../assets/myself/ski.png'
|
||||||
import book from '../../assets/myself/SmartTom.jpeg'
|
import book from '../../assets/myself/SmartTom.jpeg'
|
||||||
import surf from '../../assets/myself/surf.png'
|
import surf from '../../assets/myself/surf.png'
|
||||||
@@ -8,6 +8,54 @@ import schnee from '../../assets/myself/DSCN1921.jpg'
|
|||||||
import water from '../../assets/myself/27-2.jpg'
|
import water from '../../assets/myself/27-2.jpg'
|
||||||
import gopro from '../../assets/myself/GOPR0521.png'
|
import gopro from '../../assets/myself/GOPR0521.png'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import { gsap } from "gsap"
|
||||||
|
import { ScrollTrigger } from 'gsap/ScrollTrigger';
|
||||||
|
import { Flip } from 'gsap/Flip';
|
||||||
|
|
||||||
|
gsap.registerPlugin(ScrollTrigger, Flip);
|
||||||
|
|
||||||
|
let flipCtx;
|
||||||
|
|
||||||
|
|
||||||
|
const createTween = () => {
|
||||||
|
let galleryElement = document.querySelector("#gallery-8");
|
||||||
|
let galleryItems = galleryElement.querySelectorAll(".gallery__item");
|
||||||
|
|
||||||
|
console.log(flipCtx);
|
||||||
|
|
||||||
|
flipCtx && flipCtx.revert();
|
||||||
|
galleryElement.classList.remove("gallery--final");
|
||||||
|
|
||||||
|
flipCtx = gsap.context(() => {
|
||||||
|
// Temporarily add the final class to capture the final state
|
||||||
|
galleryElement.classList.add("gallery--final");
|
||||||
|
const flipState = Flip.getState(galleryItems);
|
||||||
|
galleryElement.classList.remove("gallery--final");
|
||||||
|
|
||||||
|
const flip = Flip.to(flipState, {
|
||||||
|
simple: true,
|
||||||
|
ease: "expoScale(1, 5)"
|
||||||
|
});
|
||||||
|
|
||||||
|
const tl = gsap.timeline({
|
||||||
|
scrollTrigger: {
|
||||||
|
trigger: galleryElement,
|
||||||
|
start: "center center",
|
||||||
|
end: "+=100%",
|
||||||
|
scrub: true,
|
||||||
|
pin: galleryElement.parentNode
|
||||||
|
// markers: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
tl.add(flip);
|
||||||
|
return () => gsap.set(galleryItems, { clearProps: "all" });
|
||||||
|
});
|
||||||
|
};
|
||||||
|
createTween();
|
||||||
|
|
||||||
|
window.addEventListener("resize", createTween);
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<section class="image-section">
|
<section class="image-section">
|
||||||
|
|||||||
Reference in New Issue
Block a user