제이쿼리(jQuery)를 활용하여 스크롤에 반응하는 인터렉션 효과
이번 포스팅에서는 몇 가지 간단한 단계만으로 간편하고 매력적인 인터렉션 효과를 구현해 보도록 하겠습니다.
구현할 효과는 제이쿼리(jQuery)를 사용하여 스크롤에 반응하는 회전하는 인터렉션이며
이러한 효과는 웹 페이지에 사용자가 웹페이지에 흥미를 느낄 요소가 높으며 그로 인해 사이트에 대한 체류시간을 높일 수 있습니다.
먼저 인터렉션을 줄 요소를 작성해줍니다.
SVG 코드를 불러오는 방법은 이전 포스팅을 참고해주세요(바로가기)
<div id="content">
<div class="text-svg">
<svg viewBox="0 0 100 100">
<path id="circlePath" fill="none" d="
M 10, 50
a 40,40 0 1,1 80,0
a 40,40 0 1,1 -80,0
" />
<text id="text" font-size="15" font-weight="bold">
<textPath id="textPath" href="#circlePath">HELLO WELCOME TO MY WEBSITE</textPath>
</text>
</svg>
</div>
</div>
우선 “div”태그에 “.text-svg” 속성을 부여한 다음 요소의 위치를 잡아줍니다.
그리고 회전 할 요소를 간단하게 SVG 코드로 작성해주었습니다.(이미지 파일 등 어떤요소로든 사용해도 괜찮습니다)
CSS 속성 부여하기
* {
margin: 0;
padding: 0;
}
body {
width: 100%;
background: #e8ebf3;
}
#content {
width: 100%;
height: 2000px;
}
#content .text-svg {
position: fixed;
left: 50%;
top: 50%;
width: 200px;
transform: translate(-50%, -50%);
}
#content .text-svg svg {
width: 100%;
}
우선 컨텐츠가 없으므로 스크롤이 가능하게 #content 요소에 높이를 2000px; 적용합니다.
그리고 .text-svg 요소에 위치값을 지정합니다.
해당 부분은 실직적인 효과구현에는 상관이 없으니 편하게 수정하셔도 괜찮습니다.
제이쿼리(jQuery)로 효과 구현하기
$(window).scroll(function () {
var scrollTop = $(this).scrollTop();
var degrees = scrollTop / 5; // 회전 각도를 스크롤 위치에 따라 결정 (원하는 값으로 조정)
$(".text-svg svg").css("transform", "rotate(" + degrees + "deg)");
});
일단 스크롤 이벤트를 감지하는 “$(window).scroll()” 함수를 사용하여 스크롤이 발생할 때마다 이벤트를 작동시킵니다.
“var scrollTop = $(this).scrollTop();” 해당 변수를 통해 현재 스크롤 위치를 저장하며 ” var degrees = scrollTop / 5; ” 변수에 스크롤의 위치에 따라 회전하는 각도를 저장합니다.
마지막으로 $(“.text-svg svg”).css(“transform”, “rotate(” + degrees + “deg)”); 스타일 속성을 변경하는 코드를 작성하여 위에서 저장한 “degrees ” 변수를 가저와 엘리먼트 요소에 회전하는 CSS 스타일을 실시간으로 추가합니다.
결과보기(풀페이지)
이번 튜토리얼에서는 스크롤에 때라 반응하는 인터렉션을 구현해보았습니다.
이런 하나의 작은 요소라도 사용자와의 상호작용을 도입함으로써 웹사이트에 흥미를 불러일으킬 수 있고, 사용자들이 웹사이트에 더 오래 머무르게 할 수 있습니다.
더 나아가서, 본 예제에서 사용한 스크롤 효과를 응용하여 더 복잡하고 창의적인 인터랙션 효과를 구현하는 것도 가능합니다.
여러분들의 상상력과 창의성을 발휘하여 독특하고 매력적인 인터랙션 효과를 만들어보시기 바랍니다.