본문 바로가기
Development/Javascript

JQuery를 이용한 리얼클릭 스크롤 배너 움직이기

by 로젠크로와싱 2012. 5. 19.
반응형

제 블로그의 오른쪽에 리얼센스 광고가 플로팅 스크롤되어 위 아래로 움직이고 있습니다. 웹 2.0이 도래하면서 Javascript Library중 각광받고 있는 jQuery는 자바스크립트 기반이기는 하지만, 기존의 스크립트 코딩방식과 차이가 있습니다. 어떤 기능을 하는 함수를 구현할려면 기존의 코딩으로 5라인의 코드가 있다면, jQuery는 단 하나의 Function으로 구현할 수 있습니다. 

자 이제, 저 스크롤 코드를 분석해보도록 하겠습니다.

2012/05/21 - [Development/JQuery] - JQuery 사용 시 필요한 js 파일 로드 하기

먼저 jQuery가 홈페이지에 로드되어 있다는 가정하에 이하 코드를 설명하겠습니다.

<!-- 리얼 클릭 스크롤 배너 -->

<div id="[Value]" style="position:absolute; top:0px; right:0px; width:0px; height:0px; z-index:1; ">

<!-- 리얼클릭 광고 위치 -->

</div>

div 레이어는 티스토리 스킨 기준으로 <div id="header">밑에 넣고, [Value]는 원하시는 id를 넣어 주시면 됩니다. 물론 광고도 삽입해야 되겠지요?

아, 한가지 말씀드리자면, 저런 방식으로 레이어를 직접 꾸미세요, 위에 태그는 한 예이며, 동작이 안될 수도 있습니다. 저는 div 레이어 두개와 <table> 태그를 사용하여 플로팅을 만들었습니다.

다음으로 중요한 jQuery를 삽입해 보겠습니다.

jQuery 코드는 두가지 방식이 있는데, jQuery의 버전이나 웹 브라우저의 환경에 따라 구동이 안되는 방식이 있기 때문에, 두가지 방식 중에 하나를 선택하여 코드를 삽입해 주세요.

방식 1

<!-- '$' alias가 인식이 될 때 타입 1 -->

<!-- </body> 위에 위치하는 스크립트 -->

<script type="text/javascript">

var realclick = $('#[ID]'); /* div의 id 속성 값을 입력 */

var realclick_top = 20; /* div layer top position */ 

/* realick scroll initialization */

realclick.css('top', 20 ); /* 초기 페이지가 로딩되었을 때 광고 top 위치 */

$(document).ready(function(){ /* 페이지 로딩이 완료되었을 때 */

/**

 div를 애니메이트 시키는 함수 animate( 속성, 동작시간 ) 

 @param 속성: 애니메이트할 속성 지정

 @param 동작시간: ms동안 애니메이트 (수치가 낮을 수록 빠르게 동작)

 */

realclick.animate( { "top": $(document).scrollTop() + realclick_top + "px" }, 0 );  

$(window).scroll(function(){

realclick.stop(); /* 이전의 동작을 중지 */

/* 1초 동안 위치 이동 */ 

realclick.animate( { "top": $(document).scrollTop() + realclick_top + "px" }, 1000 );

});

});

</script>

방식 2

<!-- '$' alias가 인식이 되지 않을 때 타입 2 -->

<!-- </body> 위에 위치하는 스크립트 -->

<script type="text/javascript">

var realclick = jQuery('div[id="ID"]'); /* div의 id 속성 값을 입력 */

var realclick_top = 20; /* div layer top position */ 

/* realick scroll initialization */

realclick.css('top', 20 ); /* 초기 페이지가 로딩되었을 때 광고 top 위치 */

jQuery (document).ready(function(){ /* 페이지 로딩이 완료되었을 때 */

/**

 div를 애니메이트 시키는 함수 animate( 속성, 동작시간 ) 

 @param 속성: 애니메이트할 속성 지정

 @param 동작시간: ms동안 애니메이트 (수치가 낮을 수록 빠르게 동작)

 */

realclick.animate( { "top" jQuery (document).scrollTop() + realclick_top + "px" }, 0 );  

jQuery (window).scroll(function(){

realclick.stop(); /* 이전의 동작을 중지 */

/* 1초 동안 위치 이동 */ 

realclick.animate( { "top" jQuery (document).scrollTop() + realclick_top + "px" }, 1000 );

});

});

</script>

방식 1과 2의 차이는 $냐 jQuery냐 밖에 없습니다. 저는 방식 2번으로 구동하고 있구요. 스크립트를 올릴테니 다운 받으셔서 넣으셔도 됩니다.

<head>에 <script src="js 경로"></script> 를 넣어고, </body> 위에 scrolling(id, top)을 로딩 시켜주면 되는 파일입니다. div id와 위치를 넣으면 원하는 값으로 스크롤 플로팅을 하실 수 있습니다.

scrolling.zip

반응형