117 lines
3.0 KiB
HTML
117 lines
3.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Document</title>
|
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/gsap.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/Observer.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3.12.5/dist/ScrollTrigger.min.js"></script>
|
|
<style>
|
|
:root {
|
|
--circleSize: 0vh;
|
|
--circleColor: white;
|
|
}
|
|
|
|
body {
|
|
padding-top: 400px;
|
|
padding-bottom: 600px;
|
|
}
|
|
|
|
.section {
|
|
height: 100vh;
|
|
position: relative;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
|
|
&.first {
|
|
background-color: white;
|
|
}
|
|
&.second {
|
|
background-color: black;
|
|
}
|
|
|
|
|
|
|
|
.text-wrap {
|
|
p {
|
|
font-weight: 600;
|
|
font-size: 3em;
|
|
text-align: center;
|
|
margin: 0;
|
|
color: white;
|
|
mix-blend-mode: difference;
|
|
}
|
|
}
|
|
|
|
.circle {
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
background-color: white;
|
|
mix-blend-mode: difference;
|
|
border-radius: 100%;
|
|
transform: translate(-50%, -50%);
|
|
width: var(--circleSize);
|
|
height: var(--circleSize);
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="section first">
|
|
<div class="circle"></div>
|
|
<div class="text-wrap">
|
|
<p>
|
|
brands & <br />
|
|
Experiences
|
|
</p>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section second">
|
|
<div class="circle"></div>
|
|
<div class="text-wrap">
|
|
<p>
|
|
second & <br />
|
|
Experiences
|
|
</p>
|
|
|
|
</div>
|
|
</div>
|
|
<script>
|
|
document.addEventListener("DOMContentLoaded", (event) => {
|
|
gsap.registerPlugin(ScrollTrigger);
|
|
|
|
gsap.to(".section.first .circle", {
|
|
width: '100vh',
|
|
height: '100vh',
|
|
scrollTrigger: {
|
|
trigger: ".section.first",
|
|
start: "top +=100",
|
|
endTrigger: ".section.second",
|
|
end: "top",
|
|
scrub: true,
|
|
markers: true
|
|
}
|
|
});
|
|
|
|
gsap.to(".section.second .circle", {
|
|
width: '100vh',
|
|
height: '100vh',
|
|
scrollTrigger: {
|
|
trigger: ".section.second",
|
|
start: "top",
|
|
end: "bottom",
|
|
scrub: true,
|
|
markers: true
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
|
|
</html> |