μ€ν¬λ‘€ μμΉμ λ°λΌ λ€μν μ λλ©μ΄μ μ΄ λμνλ μ€ν¬λ‘€ μΈν°λμ μΉ νλ‘μ νΈμ λλ€.
Sticky Section ꡬ쑰μ μ€ν¬λ‘€ λΉμ¨ κ³μ°μ κΈ°λ°μΌλ‘
ν
μ€νΈ, μ΄λ―Έμ§, λ°°λ μ λλ©μ΄μ
μ ꡬννμ΅λλ€.
μ΄λ―Έμ§ μνμ€ κΈ°λ²μ μ¬μ©νμ¬ μ€ν¬λ‘€μ λ°λΌ μμμ²λΌ 보μ΄λ μΈν°λμ ν¨κ³Όλ ꡬννμ΅λλ€.
https://hanyiseul.github.io/toy-project/interaction/index.html
μ΄ νλ‘μ νΈλ λ³λμ μλ² μ€ν μμ΄ HTML νμΌμ μ΄μ΄ μ€νν μ μμ΅λλ€.
parallax.html νμΌ μ€ν
λλ
λΈλΌμ°μ μμ parallax.html μ΄κΈ°
interaction
β
βββ assets
β βββ css
β β βββ index.css
β β
β βββ fonts
β β
β βββ img
β β
β βββ js
β βββ parallax.js
β
βββ scss
β βββ _colors.scss
β βββ _fonts.scss
β βββ _parallax.scss
β βββ reset.scss
β βββ index.scss
β
βββ parallax.html
νμ΄μ§λ₯Ό μ¬λ¬ Scene(Section) μΌλ‘ λλκ³
μ€ν¬λ‘€ μμΉμ λ°λΌ κ° Sceneμ μ λλ©μ΄μ
μ μ€ννλλ‘ κ΅¬ννμ΅λλ€.
section0 : intro
section1 : scroll text animation
section2 : image transition
section3 : image sequence animation
section4 : scroll banner
section5 : floating button
κ° Sceneμ λ€μ μ 보λ₯Ό κ°μ§κ³ μμ΅λλ€.
μ΄λ₯Ό κΈ°λ°μΌλ‘ νμ¬ μ€ν¬λ‘€ μμΉμ λ§λ μ λλ©μ΄μ μ μ€νν©λλ€.
μ€ν¬λ‘€ μμΉλ₯Ό λΉμ¨(scrollRatio) λ‘ κ³μ°νμ¬
DOM μ€νμΌ κ°μ λ³κ²½νλ λ°©μμΌλ‘ μ λλ©μ΄μ
μ ꡬννμ΅λλ€.
μμ
opacity
transform
translate
clip-path
μ΄λ₯Ό ν΅ν΄ μ€ν¬λ‘€ μμΉμ λ§λ μμ°μ€λ¬μ΄ μΈν°λμ μ ꡬννμ΅λλ€.
μ¬λ¬ μ₯μ μ΄λ―Έμ§λ₯Ό μμλλ‘ κ΅μ²΄νμ¬
μ€ν¬λ‘€μ λ°λΌ μμμ²λΌ 보μ΄λ μΈν°λμ
ν¨κ³Όλ₯Ό ꡬννμ΅λλ€.
LOOPY-1.png
LOOPY-2.png
LOOPY-3.png
...
μ€ν¬λ‘€ μμΉμ λ°λΌ μ΄λ―Έμ§ λ²νΈλ₯Ό κ³μ°νμ¬
μ΄λ―Έμ§λ₯Ό κ΅μ²΄νλ λ°©μμΌλ‘ ꡬννμ΅λλ€.
μ€ν¬λ‘€ μ΄λ²€νΈλ₯Ό μ§μ μ²λ¦¬νμ§ μκ³
requestAnimationFrameμ μ¬μ©νμ¬ μ λλ©μ΄μ
루νλ₯Ό ꡬννμ΅λλ€.
scroll event
β
requestAnimationFrame
β
animation loop
μ΄λ₯Ό ν΅ν΄
ν¨κ³Όλ₯Ό μ»μμ΅λλ€.
μ¬μ©μ μ€ν¬λ‘€
β
βΌ
scroll event λ°μ
β
βΌ
νμ¬ scrollY κ³μ°
β
βΌ
νμ¬ Scene κ³μ°
β
βΌ
Animation Value κ³μ°
β
βΌ
DOM Style λ³κ²½
β
βΌ
μ€ν¬λ‘€ μΈν°λμ
μ€ν
μ€ν¬λ‘€ κΈ°λ° μΈν°λμ μ λΌμ΄λΈλ¬λ¦¬ μμ΄ μ§μ ꡬννλ©΄μ
λ± μΈν°λμ ꡬν λ°©μμ λν μ΄ν΄λλ₯Ό λμΌ μ μμμ΅λλ€.
λν μ΄λ―Έμ§ μνμ€λ₯Ό νμ©νμ¬
μ€ν¬λ‘€ κΈ°λ° μμ μΈν°λμ
ν¨κ³Όλ₯Ό ꡬννμ΅λλ€.
μ λλ©μ΄μ
λ‘μ§μ΄ νλμ JavaScript νμΌμ μ§μ€λμ΄
μ½λκ° λ€μ κΈΈμ΄μ‘μ΅λλ€.
λν Scene κ΅¬μ‘°κ° λμ΄λλ©΄μ
νμμ±μ λκΌμ΅λλ€.