seevaa의 잡다구리한 이야기

스타일문서 없이 보이는 화면입니다. 아래 메뉴를 활용하시면 보다 용이하게 이동하실 수 있습니다.(감춰져있던 about, gallery 내용이 상단에 출력되는 불편이 있습니다.)

본문 | 글 분류 | 최근 글 | 블로그 소개 | 겔러리 썸네일보기 | 태그 | 방명록 | 아래로




검색해보시면 쉽게 찾을 수 있는 팁입니다만, 그래도 물어보시는 분이 계셔서 올려봅니다.
아래내용은 TT스킨게시판 설레는 마음 스킨 3종 by qwer999을 참고했습니다.

활용예는 여느 사이트에서 많이 보셨겠지만 제 블로그 왼쪽에 빨간(top)막대처럼 스크롤에 따라 같이 움직이는 겁니다. 저는 페이지가 길어질 때 스크롤압박을 도와주기 위해 맨 윗부분으로 가는 링크를 사용하였는데 이것 뿐만 아니라 다른 메뉴(링크)도 추가하실 수 있습니다.

적용방법은 간단히, 상단에 해당 스크립트를 넣어준 다음, 실제 움직이는 메뉴(position:absolute;)를 만들어주시면 되는 겁니다.

1. 상단(head)에 들어갈 스크립트

<script type="text/javascript">
<!-- 
	var stmnLEFT =0; // 왼쪽 여백 (메뉴가 왼쪽에서 400픽셀 떨어진 곳에 보여집니다)
	var stmnGAP1 = 160; // 위쪽 여백 (메뉴가 위에서 10픽셀 떨어진 곳에 보여집니다) 
	var stmnGAP2 = 160; // 스크롤시 브라우저 위쪽과 떨어지는 거리 
	var stmnBASE = 160; // 스크롤 시작위치 
	var stmnActivateSpeed = 35; 
	var stmnScrollSpeed = 20; 
	var stmnTimer; 
	
	function RefreshStaticMenu() { 
		var stmnStartPoint, stmnEndPoint; 
		stmnStartPoint = parseInt(document.getElementById('STATICMENU').style.top, 10); 
		stmnEndPoint = Math.max(document.documentElement.scrollTop, document.body.scrollTop) + stmnGAP2; 
		if (stmnEndPoint < stmnGAP1) stmnEndPoint = stmnGAP1; 
		if (stmnStartPoint != stmnEndPoint) { 
			stmnScrollAmount = Math.ceil( Math.abs( stmnEndPoint - stmnStartPoint ) / 15 ); 
			document.getElementById('STATICMENU').style.top = parseInt(document.getElementById('STATICMENU').style.top, 10) + ( ( stmnEndPoint<stmnStartPoint ) ? -stmnScrollAmount : stmnScrollAmount ) + 'px'; 
			stmnRefreshTimer = stmnScrollSpeed; 
			}
		stmnTimer = setTimeout("RefreshStaticMenu();", stmnActivateSpeed); 
		} 
	function InitializeStaticMenu() {
		document.getElementById('STATICMENU').style.left = stmnLEFT + 'px'; 
		document.getElementById('STATICMENU').style.top = document.body.scrollTop + stmnBASE + 'px'; 
		RefreshStaticMenu();
		}
//--> 
</script>

위 스크립트를 <head> </head>사이에 넣어줍니다.
위에서 주석처러 된부분은 실제 메뉴부분이 들어갈 위치와 스크롤스피드이니 그에 맞게 각자 수정하셔야 됩니다.

2. <body> 에도 아래와 같이 추가합니다.

<body onload="InitializeStaticMenu();">

3. 실제 보이는 메뉴부분 만들기

각자 만들고 싶은 메뉴를 만드시면 됩니다. 단, 그부분 id 를 "STATICMENU"로 지정하시고, style을 position:absolute로 해주셔야 되는 겁니다.

예)
<div id="STATICMENU" style="padding:0; margin:0; position:absolute; z-index:1;">
	<a href="링크" >링크</a>
	<a href="링크" >링크</a>
	또는 이미지나 여러가지...
</div>
저의 적용 예)
<div id="STATICMENU">
	<a href="#container" onfocus='this.blur()' class="scrolltop"></a>
</div>
저는 스타일부분을 css로 넘겼습니다.
css 해당부분 예)
#STATICMENU { padding:0; margin:0; position:absolute; width:40px; z-index:1;}
#STATICMENU .scrolltop {display:block; width:40px; height:15px; background:url("./images/top.gif") top left no-repeat; }
#STATICMENU .scrolltop:hover {background:url("./images/top-on.gif") top left no-repeat; }

쉽게 설명드린건지 모르겠네요~ 안되는 부분은 댓글달아주세요~ ^-^;;
스르륵 열리는 부분(about, gallery)도 같이 올리려했는데, 넘 길어지는군요... 이것도 이어서 올려보겠습니다.



AdClix link(광고) //
|  1  | ...  90  |  91  |  92  |  93  |  94  |  95  |  96  |  97  |  98  | ...  222  |