웹문서
Top버튼 만들기 4가지 방법

웹 사이트 글을 읽다보면 너무 긴 페이지에 위로 가기가 불편합니다. 홈페이지나 블로그 아래에 맨 위로 버튼을 만들어 놓으면 무척이나 편합니다. 간단히 만드는 방법에 대해 알아 봅시다.


참고로 새로운것은 아니구요. 기존의 인터넷에 있는것을 모아 보았습니다.




1. 간단히 텍스트로 만들기(html)

간단하게 먼저 시작 하겠습니다. html의 a태그를 이용 만들어 보겠습니다.


<body><a name="Top"></a>

...

<a href="#Top">TOP</a>

위의 것은 a태그 name을 이용 Top버튼 만들기 입니다.


<body id="pageTop">

...

<a href="#pageTop">TOP</a>

그리고 a태그name를 이용할 필요없이 선택자인 id를 이용 해도 됩니다.


<a href="#">TOP</a>

또하나 위치 하고 상관없이 처음으로 가기는 #만 하셔도 됩니다.



밑의 예제를 참조.


위치 지정 버튼(간단)

이 부분은 많은 소스들이 있습니다. 그중에 html로만 만들수 있게 초 간단 부분입니다.


<a style="display:scroll;position:fixed;bottom:10px;right:5px;" href="#" title=”top">TOP</a>
</body>
</html>

a태그에 스타일(style)문을 사용 좌측하단에 스크롤과 관계 없이 고정 되게 되어 있습니다.

위의 예제 중에 position:fixed;는 화면 고정(fixed), bottom:10px;right:5px;를 조정하여 위치도 변경 가능합니다.

또한 되도록이면 보기 좋게 html소스의 마지막에 위치 시키면 관리가 편리합니다.


덤 (이미지 넣기)

텍스트 대신 이미지를 넣으셔도 됩니다.

<a style="..." href="#"><img src="이미지 주소"></a>




2. 주소뒤 '#' 안 붙게 만들기

스타일 부분 (공통)

.topBtn {cursor:pointer;}


html 부분

<div class=topBtn onclick="window.scrollTo(0,0);">TOP</div>
<span class=topBtn onclick="window.scrollTo(0,0);">TOP</span>
<a href="javascript:window.scrollTo(0,0);">TOP</a>

위의 3개중 하나 만 써도 됩니다.


설명

cursor:pointer : 마우스 커서를 손가락 모양으로 변경해 주는 스크립트

onclick : 클릭시

window.scrollTo 를 사용해서 (x,y) 를 (0,0) 으로 이동 시켜 주는 스크립트.

나머지는 위에 중복



밑의 예제 참조




3. 조금 복잡하게 만들기(Html/Css/JQuery)

위의 것은 간단하게 만드는 부분이고 이제부터 조금 스무스하게 올라가는 버튼을 만들려고 합니다. JQuery문을 사용하여 만드는 방법입니다. 지금 이 블로그에 약간 변형해서 사용 중입니다.


일단 jQuery를 문서에 삽입합니다.

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>


html파일

<a id="topBtn" href="#">TOP</a>


스타일 부분

a#topBtn {
   position: fixed;   /* 포지션 고정 */
   right: 2%;         /* 오른쪽에서 2% - %도 할수 있음*/
   bottom: 5px;       /* 밑에서 5px */
   display: none;     /* 보여지지 없음 - 기본적으로  안보여지게 */
   z-index: 9999;     /* 포지션을 먼저 지정후 z-좌표(레이어) : 9999입니다. */
}


jQuery 부분

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



밑의 예제 참조





4. top버튼 특정 위치에 나타나기

위의 부분에서 특정 위치(여기서는 사이드바의 x좌표 0)에 나타나는 부분을 만들어 보겠습니다. 즉, 사이드바에 붙어 다니는 top버튼 입니다.

.offset() 함수를 이용하겠습니다.

설명은 : http://api.jquery.com/offset/


offset함수는 밑에서 높이가 없어서 css에 넣습니다.


html파일

<a id="toTop" href="#">TOP</a>

스타일 부분

#toTop {
   position: fixed;   /* 포지션 고정 */
   bottom: 100px;     /* 밑에서 100px */
   display: none;     /* 보여지지 없음 - 기본적으로  안보여지게 */
   z-index: 9999;     /* 포지션을 먼저 지정후 z-좌표(레이어) : 9999입니다. */
}


jQuery 부분


 $(function() {
   // 보이기 | 숨기기
   $(window).scroll(function() {
      if ($(this).scrollTop() > 250) { //250 넘으면 버튼이 보여짐니다.
            $('#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;
    });
  });



밑의 예제 참조


..

IN:nK 블로그의 'AneOK'님 글 입니다.

IN:nK은?

多樂旅行(다락여행)은 좋은 것을 보고 인생을 즐겁게 살자는 취지로 만들었습니다. 복잡한 것은 잠시 접어두고 여행하는 마음으로 가볍게 보는 블로그입니다.

.