본문 바로가기

jquery소스

[jQuery] scrollTop()을 활용한 고정스크롤리모컨

http://kitchu.tistory.com/14


브라우저 좌측 하단에 고정적으로 위치, 최초 display는 none으로써 안보이는 상태. 

문서에서 일정 이하로 스크롤했을 때 fadeIn, 위로 올리면 다시 fadeOut.

요소를 클릭하면 웹페이지 최상단으로 이동하게 구현.


index.html)

 <span id="remoCon">

      Going Up

 </span> 


css)

 #remoCon {

position: fixed;

width: 60px;

height: 20px;

right: 20px;

bottom: 20px;

display: none;

 } 


js)

 $(document).scroll(function(){

var con = $("#remoCon");

var position = $(window).scrollTop();

if(position > 250){ con.fadeIn(500); }

else if(position < 250){ con.fadeOut(500); }

 });


 $("#remoCon").click(function(){

$("html, body").animate({scrollTop: 0}, 1000);

 });


매우 간단하다. 왜 고생했는지 모를 정도로.-.- 코드에 대한 주석을 따로 달 필요 없이 scrollTop()의 기능만 확실히 감 잡으면 된다.

괜히 offset() 써먹을려고 낑낑대다 시간만 날렸다. 이유는 정확히 모르겠지만, display 상태가 변하기 전까지 offset().top 값을 잘 받아오다가

특정 위치를 지나 요소가 사라지거나 나타난 후엔 offset()값이 변하는것같다. 값은 바뀌는데 기준은 그대로니 fadeIn, fadeOut 기능 먹통됨.ㅜㅜ



+) 문제해결을 위한 구글링 중 eNaNII님의 티스토리에서 스크롤을 따라 움직이는 요소의 코드를 발견해서 추가로 기록해둔다. (링크)

 $(window).scroll(function(){ 

        var currentPosition = parseInt($('#myMenuLayer').css('top'));  

        var position = $(window).scrollTop();

        $('#myMenuLayer').stop().animate({'top': position + currentPosition + 'px'}, 1000);
 });


'jquery소스' 카테고리의 다른 글

슬라이드  (0) 2015.09.25
버튼 클릭시 이동 스크롤  (3) 2015.09.18
플러그인 - 페이지 스크롤 기억  (0) 2015.09.18