webflow/scroll-background-circle.html
익희 김 423c19c768 up
2024-10-03 05:18:15 +09:00

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>