⊹⠀𝚓𝚚𝚞𝚎𝚛𝚢

❏jquery - 상단 스크롤 이동 버튼 만들기! (스크롤 up버튼 만들기)

김_코드 2022. 12. 30. 19:00

안녕하세요!

 

벌써 올해 22년도 내일이면 마지막이네요! 다들 행복한 연말을 보내시고 계신지요?

 

저는 포트폴리오를 만들면서 22년도의 마지막 분기를 보냈습니다,

 

포트폴리오에 사용했던 스크롤 업 버튼을 한번 가지고 왔는데요.

 

제이쿼리로 작성이 된 코드이니 쉽게 사용하실 수 있으실 겁니다!

 

오늘 만들어 볼 친구는 이 친구입니다!

 

up 버튼!
적용 화면

 

 

여하튼 바로 만나보러 가시죠!

 


✎ html

html은 크게 작성할 것이 없습니다!

원하시면 이미지 파일로 아예 넣으셔도 되시고 아니면 저처럼 아이콘을 넣으셔도 됩니다.

<a id="toTop" href="#" style="color: white;">
    <i class="fa-solid fa-arrow-up"></i>
    <br>
    UP
</a>

저는 이렇게 작성한 코드를 footer가 시작되는 부분에 넣어주었습니다.

보통 스크롤 버튼이 footer밑에 있으면 아닌 것 같아서요! (개인적인 의견입니다.)

 

여하튼 작성해주시면 됩니다.

 

✎ css

#toTop {
    position: fixed;
    bottom: 160px; 
    display: none;
    z-index: 99999;
    right: 30px;
    text-align: center;
    background-color: #b8b8b87d;
    padding: 10px;
    font-weight: bold;
    box-shadow: 2px 2px 2px rgb(252, 251, 251);
}

버튼이 항상 고정되어 있어야 하기 때문에 position: fixed; 속성을 주었답니다.

버튼이 가려지지 않고 항상 맨 앞에 와야 하기 때문에 z-index: 99999;로 주었고요!

그리고 마지막으로 이 버튼이 항상 떠 있는 것이 아니고 어느 정도 스크롤이 내려가야지만 보여야 하기 때문에

display: none;으로 속성값을 주었어요!

 

그리고 나머지 백그라운드 색상이나 다른 속성값들은 주시고 싶은 대로 주시면 됩니다!

 

✎ jquery

$(function() {
    // 보이기 | 숨기기
    $(window).scroll(function() {
       if ($(this).scrollTop() > 550) { //500 넘으면 버튼이 보여짐니다.
             $('#toTop').fadeIn();
             $('#toTop').css('left', $('#sidebar').offset().left);  // #sidebar left:0 죄표
             } else {
             $('#toTop').fadeOut();
       }
    });
    // 버튼 클릭시
    $("#toTop").click(function() {   
    $('html, body').animate({
      scrollTop : 0    // 0 까지 animation 이동합니다.
     }, 400);          // 속도 400
     return false;
     });
   });

저는 스크롤 값이 500이 넘으면 버튼이 보이도록 설정해 두었는데요

만약 사용하시는 페이지에 맞게 설정을 해두시면 됩니다!

 

그리고 이동한 곳이 페이지의 최상단이기 때문에 scrollTop : 0는 변하면 안 됩니다.

만약 부분적으로 나누고 싶다면 더 세세하게 나누셔서 적으시면 될 것 같습니다!

그리고 스크롤이 되면서 움직이는 화면의 속도를 저는 400으로 주었는데 적당한 것 같더라고요.

 

만약 속도를 더 높이고 싶으시면 400보다 더 높은 값을 더 내리고 싶으시다면 400보다 낮은 값을 주면 됩니다!

 

그러면 이렇게 정해진 스크롤 값이 되면 나타났다가 없어지는 버튼이 만들어집니다 ~

 


오늘도 읽어주셔서 감사합니다!

^-^