일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 해피씨지아이
- CGIMALL
- #이미지
- jquery
- 홈페이지
- #image
- #happycgi
- #cgimall
- 쇼핑몰
- #jQuery
- 웹솔루션
- happycgi
- #솔루션
- CSS
- #홈페이지
- 해피CGI
- #업종별
- php
- #동영상
- #쇼핑몰
- #CSS
- #웹솔루션
- #해피CGI
- 솔루션
- javascript
- #홈페이지제작
- 홈페이지제작
- #뉴스
- 게시판
- 사이트제작
- Today
- Total
웹솔루션개발 25년 노하우! 해피CGI의 모든것
[해피CGI][cgimall] GSAP ScrollTrigger + TextPlugin- 스크롤 트리거 + 텍스트 플러그인 본문
[해피CGI][cgimall] GSAP ScrollTrigger + TextPlugin- 스크롤 트리거 + 텍스트 플러그인
해피CGI윤실장 2024. 12. 26. 09:12GSAP ScrollTrigger + TextPlugin- GSAP 스크롤 트리거 + 텍스트 플러그인
스크롤시 텍스트가 변합니다. 메인 디자인이나 다이나믹한 디자인을 원하신다면 활용하시면 좋을거 같습니다.
HTML 구조
<section>
<h1>
<span>SCROLL</span>
<span>FOR</span>
<span>MORE</span>
</h1>
</section>
<section></section>
CSS 소스
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');
html, body {
font-family: "Open Sans", serif;
font-optical-sizing: auto;
font-weight: 800;
font-style: normal;
font-variation-settings: "wdth" 800;
color:#111;
}
section {
width:100%;
height:100vh;
display:flex;
align-items:center;
justify-content:center;
}
h1 {
width:32vw;
}
h1 span {
display:block;
font-size:7vw;
position:relative;
margin-bottom:3vw;
padding:0 1vw;
width: fit-content;
--bg:transparent;
}
h1 span:after {
z-index:-1;
border-radius:1vw;
content: "";
width:100%;
height:33%;
left:0;
bottom:0;
position: absolute;
background:var(--bg);
}
JS 소스
const arr1 = ["1bb28c","e86a58","fed45b","9bc7c5"]
const arr2 = [...arr1]
const arr3 = [...arr1]
const words2 = ["DON’T","BE","EVIL"]
const words3 = ["NICE TO","MEET","YOU"]
const spans = document.querySelectorAll('h1 span')
const getHexFrom = (arr) => arr.splice( gsap.utils.random(0 ,arr.length-1, 1), 1)
const tl = gsap.timeline({
defaults:{ ease:'none' },
scrollTrigger:{
trigger:'section',
scrub:0,
pin:'h1',
start:'0 0',
end:'100% 0'
}
})
spans.forEach((span,i)=>{
gsap.set(span,{'--bg':'#'+getHexFrom(arr1)})
tl.add( gsap.to(span, { text:words2[i] }), i)
tl.add( gsap.to(span, { '--bg':'#'+getHexFrom(arr2), duration:0.15 }), i)
tl.add( gsap.to(span, { text:words3[i] }), i+3)
tl.add( gsap.to(span, { '--bg':'#'+getHexFrom(arr3), duration:0.15 }), i+3)
})
'웹프로그램밍 자료실 > 기타 자료' 카테고리의 다른 글
[해피CGI][cgimall] 공공 인공지능 오픈 API (0) | 2025.01.02 |
---|---|
[해피CGI][cgimall] CSS 그리드를 사용한 레이아웃 템플릿 (0) | 2024.12.24 |
[해피CGI][cgimall] 이미지 파일을 base64로 인코딩해주는 base64 Image Encoder (0) | 2024.12.18 |
[해피CGI][cgimall] Creative HTML Cards (0) | 2024.12.16 |
[해피CGI][cgimall] 간단한 프롬프트 입력으로 만드는 음악 작곡, 생성 인공지능(AI) SUNO (0) | 2024.12.12 |