웹 사이트 글을 읽다보면 너무 긴 페이지에 위로 가기가 불편합니다. 홈페이지나 블로그 아래에 맨 위로 버튼을 만들어 놓으면 무척이나 편합니다. 간단히 만드는 방법에 대해 알아 봅시다.
참고로 새로운것은 아니구요. 기존의 인터넷에 있는것을 모아 보았습니다.
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;
});
});
밑의 예제 참조