refector code and kill all scrollTrigger
This commit is contained in:
@@ -1,132 +1,184 @@
|
||||
<script setup lang="js">
|
||||
import ski from '../../assets/myself/ski.png'
|
||||
import book from '../../assets/myself/SmartTom.jpeg'
|
||||
import surf from '../../assets/myself/surf.png'
|
||||
import boxen from '../../assets/myself/TOm.jpg'
|
||||
import florencs from '../../assets/myself/15.jpg'
|
||||
import schnee from '../../assets/myself/DSCN1921.jpg'
|
||||
import water from '../../assets/myself/27-2.jpg'
|
||||
import gopro from '../../assets/myself/GOPR0521.png'
|
||||
import ski from "../../assets/myself/ski.png";
|
||||
import book from "../../assets/myself/SmartTom.jpeg";
|
||||
import surf from "../../assets/myself/surf.png";
|
||||
import boxen from "../../assets/myself/TOm.jpg";
|
||||
import florencs from "../../assets/myself/15.jpg";
|
||||
import schnee from "../../assets/myself/DSCN1921.jpg";
|
||||
import water from "../../assets/myself/27-2.jpg";
|
||||
import gopro from "../../assets/myself/GOPR0521.png";
|
||||
|
||||
import { ref, onMounted, onUnmounted } from "vue";
|
||||
import gsap from "gsap";
|
||||
import ScrollTrigger from "gsap/ScrollTrigger";
|
||||
import Flip from "gsap/dist/Flip";
|
||||
|
||||
import { ref, onMounted, onUnmounted } from "vue"
|
||||
import gsap from "gsap"
|
||||
import ScrollTrigger from "gsap/ScrollTrigger"
|
||||
import Flip from 'gsap/dist/Flip'
|
||||
|
||||
gsap.registerPlugin(ScrollTrigger),
|
||||
gsap.registerPlugin(Flip);
|
||||
|
||||
const section = ref(null)
|
||||
const gallery = ref(null)
|
||||
|
||||
let ctx
|
||||
let flipCtx
|
||||
(gsap.registerPlugin(ScrollTrigger), gsap.registerPlugin(Flip));
|
||||
|
||||
const section = ref(null);
|
||||
const gallery = ref(null);
|
||||
|
||||
let ctx;
|
||||
let flipCtx;
|
||||
|
||||
const createTween = () => {
|
||||
let galleryElement = gallery.value
|
||||
ScrollTrigger.getAll().forEach((trigger) => trigger.kill());
|
||||
|
||||
let galleryElement = gallery.value;
|
||||
let galleryItems = galleryElement.querySelectorAll(".gallery__item");
|
||||
|
||||
flipCtx && flipCtx.revert();
|
||||
galleryElement.classList.remove("gallery--final");
|
||||
|
||||
flipCtx = gsap.context(() => {
|
||||
|
||||
galleryElement.classList.add("gallery--final")
|
||||
const state = Flip.getState(galleryItems)
|
||||
galleryElement.classList.remove("gallery--final")
|
||||
galleryElement.classList.add("gallery--final");
|
||||
const state = Flip.getState(galleryItems);
|
||||
galleryElement.classList.remove("gallery--final");
|
||||
|
||||
const flip = Flip.to(state, {
|
||||
simple: true,
|
||||
ease: "expoScale(1,5)"
|
||||
})
|
||||
ease: "expoScale(1,5)",
|
||||
});
|
||||
|
||||
const tl = gsap.timeline({
|
||||
scrollTrigger: {
|
||||
trigger: galleryElement,
|
||||
start: "center center",
|
||||
end: "+=100%",
|
||||
scrub: true,
|
||||
pin: galleryElement.parentNode
|
||||
}
|
||||
})
|
||||
tl.add(flip)
|
||||
}, section.value)
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
pin: galleryElement.parentNode,
|
||||
},
|
||||
});
|
||||
|
||||
ctx = gsap.context(() => {
|
||||
createTween()
|
||||
}, section.value)
|
||||
tl.add(flip);
|
||||
}, section.value);
|
||||
};
|
||||
onUnmounted(() => {
|
||||
ctx.revert();
|
||||
flipCtx?.revert();
|
||||
|
||||
window.addEventListener("resize", createTween)
|
||||
ScrollTrigger.refresh()
|
||||
})
|
||||
ScrollTrigger.getAll().forEach((trigger) => trigger.kill());
|
||||
|
||||
window.removeEventListener("resize", createTween);
|
||||
});
|
||||
|
||||
onUnmounted(() => {
|
||||
ctx.revert()
|
||||
flipCtx?.revert()
|
||||
|
||||
window.removeEventListener("resize", createTween)
|
||||
})
|
||||
|
||||
|
||||
|
||||
ctx.revert();
|
||||
flipCtx?.revert();
|
||||
|
||||
window.removeEventListener("resize", createTween);
|
||||
});
|
||||
</script>
|
||||
<template>
|
||||
<section class="image-section" ref="section">
|
||||
<div class="gallery-wrap">
|
||||
<div class="gallery gallery--bento gallery--switch" id="gallery-8" ref="gallery">
|
||||
<div class="gallery__item">
|
||||
<img :src=boxen alt="" />
|
||||
<section class="image-section" ref="section">
|
||||
<div class="gallery-wrap">
|
||||
<div
|
||||
class="gallery gallery--bento gallery--switch"
|
||||
id="gallery-8"
|
||||
ref="gallery"
|
||||
>
|
||||
<div class="gallery__item">
|
||||
<img :src="boxen" alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src="gopro" alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src="schnee" alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src="surf" alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src="florencs" alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src="book" alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src="ski" alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src="water" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src=gopro alt="" />
|
||||
<div class="text">
|
||||
<h2>Here is some content</h2>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
||||
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
|
||||
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
|
||||
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
||||
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||
mollit anim id est laborum.
|
||||
</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
||||
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
|
||||
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
|
||||
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
||||
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||
mollit anim id est laborum.
|
||||
</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
||||
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
|
||||
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
|
||||
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
||||
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||
mollit anim id est laborum.
|
||||
</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
||||
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
|
||||
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
|
||||
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
||||
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||
mollit anim id est laborum.
|
||||
</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
||||
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
|
||||
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
|
||||
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
||||
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||
mollit anim id est laborum.
|
||||
</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
||||
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
|
||||
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
|
||||
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
||||
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||
mollit anim id est laborum.
|
||||
</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
||||
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
|
||||
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
|
||||
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
||||
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||
mollit anim id est laborum.
|
||||
</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
|
||||
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
|
||||
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
|
||||
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
|
||||
occaecat cupidatat non proident, sunt in culpa qui officia deserunt
|
||||
mollit anim id est laborum.
|
||||
</p>
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src=schnee alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src=surf alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src="florencs" alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src=book alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src=ski alt="" />
|
||||
</div>
|
||||
<div class="gallery__item">
|
||||
<img :src=water alt="" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="text">
|
||||
<h2>Here is some content</h2>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
@@ -214,5 +266,4 @@ p {
|
||||
.text {
|
||||
padding: 2rem 5rem;
|
||||
}
|
||||
|
||||
</style>
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user