728x90
반응형
Top버튼 스크롤 하단 붙이기
안녕하세요~
UI 모션 개발을 할 때,
컨텐츠가 긴 경우를 대비해서 보통 우측 하단에 상단으로 이동할 수 있는 일명 Top버튼을 많이 적용하고 있습니다.
Top버튼을 적용시킬 때 여러가지 기능이 있을 수 있습니다.
- 단순히 우측하단에 Top버튼 위치시키기
- 디폴트로 Top버튼 숨겨져 있고, 스크롤 이벤트가 발생했을 때 우측 하단에 Top버튼 보이기
- 단점 : 푸터와 겹치게 됨 - 디폴트로 Top버튼 숨겨져 있고, 스크롤 이벤트가 발생했을 때 우측하단에 Top버튼 보이기
- 장점 : 푸터와 겹치지 않음
- 단, 스크롤이 푸터에 닿기 전에 Top버튼은 푸터 바로위에 위치시키기
위의 3가지 경우 중에서
마지막 3번째 경우에 대한 모션구현을 해보았습니다.
디폴트로 Top버튼 숨겨져 있고, 스크롤 이벤트가 발생했을 때 우측 하단에 Top버튼 보이기
윈도우 스크롤 발생할 때, top버튼 유/무를 넣기 위해 추가해줍니다.
$(window).scroll(function() {
// 윈도우 스크롤 발생할 때, top버튼 유/무를 넣기 위해 추가
});
윈도우 scrollTop의 값에 대한 조건을 추가해줍니다.
- scrollTop() : 콘텐츠가 세로로 스크롤되는 픽셀 수를 가져오거나 설정
$(window).scroll(function() {
if($(window).scrollTop() >= 10) {
// 윈도우 scrollTop 값이 10이상일 때 노출
// 10 대신 헤더값을 넣고, 헤더값 보다 이상 일 때를 넣어도 UI모션상 자연스러운 것 같습니다
}else{
// 윈도우 scrollTop 값이 10미만일 때 노출
}
});
top버튼을 화면에 보여주기 위한 class를 추가해줍니다.
$(window).scroll(function() {
if($(window).scrollTop() >= 10) {
$(".btn_top").addClass("show_on");
// top버튼을 화면에 보여주기 위한 class 추가
}else{
$(".btn_top").removeClass("show_on fixed_on");
}
});
scrollBottom은 별도의 제이쿼리 API로 없기 때문에
문서의 스크롤 가장 끝 부분은 계산해서 넣어야 합니다.
윈도우 scrollTop + 윈도우 높이 = 문서의 스크롤 가장 끝
$(window).scroll(function() {
if($(window).scrollTop() >= 10) {
$(".btn_top").addClass("show_on");
if($(window).scrollTop() + $(window).height() >= $(".footer").offset().top){
$(".btn_top").addClass("show_on fixed_on");
// '문서의 스크롤 가장 끝'이 '푸터 top위치'보다 클 때, fixed_on 클래스 추가
// fixed_on : top버튼을 absolute로 변경하는 코드
}else{
$(".btn_top").removeClass("fixed_on");
// '문서의 스크롤 가장 끝'이 '푸터 top위치'보다 크지 않으면,
// 푸터에 닿지 않은 경우이므로 fixed_on 클래스 제거
}
}else{
$(".btn_top").removeClass("show_on fixed_on");
// 모두 해당하지 않는 경우, show_on, fixed_on 클래스 제거
}
});
[최종 js 코드]
$(window).scroll(function() {
if($(window).scrollTop() >= 10) {
$(".btn_top").addClass("show_on");
if($(window).scrollTop() + $(window).height() >= $(".footer").offset().top){
$(".btn_top").addClass("show_on fixed_on");
}else{
$(".btn_top").removeClass("fixed_on");
}
}else{
$(".btn_top").removeClass("show_on fixed_on");
}
});
[최종 화면]
See the Pen Top버튼 scroll 하단 붙이기 by yeony (@yeony1011) on CodePen.
유익하셨다면,
채널 추가 / 블로그 구독 / 공감 부탁드려요 🙏
728x90
반응형
'javaScript' 카테고리의 다른 글
[javaScript] 객체 지향 프로그래밍 기초 (객체, 메소드, this) (8) | 2022.04.15 |
---|---|
[javaScript] function return 기초 ( + 이중 loop 한번에 나가기 ) (5) | 2022.04.14 |
[javaScript] 배열과 문자열 기초 (Mutable/Immutable) (2) | 2022.04.14 |
[javaScript] 스크롤 여부에 따른 버튼영역 하단에 붙이기!! (0) | 2022.03.25 |
[javaScript] ios기기에서 절전모드(저절력모드) 일 때, video 자동재생되지 않는 이슈 (0) | 2022.03.24 |
댓글