패럴렉스 스크롤은 사용자의 스크롤 동작에 따라 배경과 전경의 요소들이 서로 다른 속도로 움직이면서 3D 같은 가시적 깊이감을 주는 기술입니다. 웹 디자인에서 이를 활용하면 더욱 몰입감 있고, 생동감 있는 사용자 경험을 제공할 수 있습니다. 이번 글에서는 jQuery를 이용해 간단한 패럴렉스 스크롤 효과를 구현하는 예제를 알아보겠습니다.
HTML 구조
|
|
패럴렉스 컨테이너
parallax
클래스를 가진<div>
는 패럴렉스 효과를 적용할 요소의 컨테이너 역할을 합니다.- 배경 이미지(
.bg
), 빠른 텍스트(.fast
)와 느린 텍스트(.slow
) 요소들이 포함됩니다.
텍스트 요소
fast
와slow
클래스는 각각 스크롤 속도가 서로 다른 텍스트를 나타냅니다. 이를 통해 스크롤 시 속도 차이를 눈으로 확인할 수 있습니다.
컨테이너
container
클래스는 패럴렉스 스크롤 제목을 중앙에 표시하는 역할을 합니다.
CSS 스타일
|
|
기본 레이아웃
parallax
클래스에는 패럴렉스가 적용되는 요소의 포함되는 기본 스타일이 정의되어 있습니다.overflow: hidden
은 컨테이너 밖으로 벗어나는 이미지가 보이지 않도록 합니다.bg
클래스는 배경 이미지로 적용되며, 화면에 꽉 차게 표시됩니다.
텍스트 스타일
fast
와slow
클래스를 가진 텍스트는 절대 위치로 설정되어transform: translate(-50%, -50%)
를 통해 가운데 정렬됩니다. zIndex는 배경보다 앞에 오도록 설정합니다.
jQuery 코드
|
|
초기화 및 스크롤 위치 추적
- ypos 변수는 스크롤 위치를 추적하는 데 사용됩니다.
- 페이지 로드 시 parallax 함수를 호출하여 초기 스크롤 위치에 대한 패럴랙스 효과를 적용합니다.
패럴랙스 효과 함수
- parallax 함수는 스크롤 위치에 따라 배경 이미지 및 움직이는 요소들의 위치를 업데이트합니다.
- updatePosition 함수를 호출하여 각 요소의 위치를 조절합니다.
위치 업데이트 함수 (updatePosition)
- selector는 CSS에서 해당 요소를 식별하는 업데이트할 요소의 선택자입니다.
- scrollPos는 현재 페이지에서의 스크롤 위치입니다.
- factor는 요소의 움직임에 영향을 주는 계수입니다. 값이 클수록 느리게 움직이며, 0 ~ 1 사이의 수를 사용합니다.
- type은 CSS 속성을 지정하며, 이 예제에서는 ’top’ 또는 ‘margin-top’ 중 하나를 선택하여 사용합니다.
- css 메서드를 사용하여 주어진 요소의 CSS 속성값을 업데이트합니다.
- scrollPos * factor를 통해 스크롤 위치에 계수를 곱한 값을 적용하여 움직임을 조절합니다.
스크롤 이벤트 핸들러
- 사용자가 페이지를 스크롤 할 때마다 parallax 함수가 호출되어 패럴랙스 효과를 적용합니다.
- requestAnimationFrame을 사용하여 부드러운 애니메이션을 구현합니다.
결론
위에서 설명한 코드를 활용하여 패럴렉스 스크롤 효과를 구현할 수 있습니다. 이 글을 통해 소개된 패럴렉스 스크롤 효과를 웹사이트에 적용해보면서 사용자의 시선을 사로잡는 웹 페이지를 디자인해보시기 바랍니다.