사용처 : 장태산자연휴양림
<!--
// 원본 소스 : steelheart
// 사이트 : http://steelheart.pe.kr/
/* 기존의 소스에서 객체화 재 작성 함
* 기존의 소스는 1개만 생성 가능한것을 여러개 가능하도록함
* var quick1 = new StaticMenu("quick1", document.all["Layer1"], document.all["ANIMATE"], 910, 281, null, null, 50, 10);
* quick1.InitializeStaticMenu();
* var [인스턴스명] = new StaticMenu("[인스턴스명]", [대상레이어 Object], [고정유무 checkbox Object], ... 이하 필요에 따라);
*
*
* InstanceName : 선언된 instance의 이름 : timer 지정시 대상 object 선별에 사용
* STATICMENU : 보여지는 Layer : 실제 이 Layer를 컨트롤
* ANIMATE : 스크롤 작동 유무의 checkbox : 미사용시 hidden 으로 만들어져 있어야 함
* stmnLEFT : Layer 의 left 시작위치
* stmnGAP1 : Layer 의 top 시작위치
* stmnGAP2 : 스크롤 되어 보여질 때 웹브라우저의 top과의 여백 : 0은 top 0px의 위치
* stmnBASE : Layer가 처음 보여지기 시작하는 top 위치
* stmnActivateSpeed : 스크롤 직후 Layer가 엑션에 들어가는 delay time
* stmnScrollSpeed : Layer가 스크롤 되는 속도
*
*/
function StaticMenu(TimerName, STATICMENU, ANIMATE, stmnLEFT, stmnGAP1, stmnGAP2, stmnBASE, stmnActivateSpeed, stmnScrollSpeed){
this.TimerName = TimerName;
this.STATICMENU = STATICMENU;
this.ANIMATE = ANIMATE;
if(stmnLEFT == null) // 스크롤메뉴의 좌측 위치
this.stmnLEFT = 10;
else
this.stmnLEFT = stmnLEFT;
if(stmnGAP1 == null) // 페이지 헤더부분의 여백
this.stmnGAP1 = 1000;
else
this.stmnGAP1 = stmnGAP1; // 페이지 헤더부분의 여백
if(stmnGAP2 == null) // 스크롤시 브라우저 상단과 약간 띄움. 필요없으면 0으로 세팅
this.stmnGAP2 = 0;
else
this.stmnGAP2 = stmnGAP2;
if(stmnBASE == null) // 스크롤메뉴 초기 시작위치 (아무렇게나 해도 상관은 없지만 stmnGAP1과 약간 차이를 주는게 보기 좋음)
this.stmnBASE = 10;
else
this.stmnBASE = stmnBASE;
if(stmnActivateSpeed == null) // 움직임을 감지하는 속도 (숫자가 클수록 늦게 알아차림)
this.stmnActivateSpeed = 50;
else
this.stmnActivateSpeed = stmnActivateSpeed;
if(stmnScrollSpeed == null) // 스크롤되는 속도 (클수록 늦게 움직임)
this.stmnScrollSpeed = 10;
else
this.stmnScrollSpeed = stmnScrollSpeed;
this.stmnTimer = null;
this.ToggleAnimate = function (){
if(!this.ANIMATE.checked){
this.RefreshStaticMenu();
this.SaveCookie("ANIMATE", "true", 300);
}else{
clearTimeout(this.stmnTimer);
this.STATICMENU.style.top = this.stmnGAP1;
this.SaveCookie("ANIMATE", "false", 300);
}
}
this.InitializeStaticMenu = function (){
this.STATICMENU.style.left = this.stmnLEFT;
if(this.ReadCookie("ANIMATE") == "false"){
this.ANIMATE.checked = true;
this.STATICMENU.style.top = document.body.scrollTop + this.stmnGAP1;
}else{
this.ANIMATE.checked = false;
this.STATICMENU.style.top = document.body.scrollTop + this.stmnBASE;
this.RefreshStaticMenu();
}
}
this.RefreshStaticMenu = function (){
var stmnStartPoint, stmnEndPoint, stmnRefreshTimer;
stmnStartPoint = parseInt(this.STATICMENU.style.top, 10);
stmnEndPoint = document.body.scrollTop + this.stmnGAP2;
if(stmnEndPoint < this.stmnGAP1) stmnEndPoint = this.stmnGAP1;
stmnRefreshTimer = this.stmnActivateSpeed;
if( stmnStartPoint != stmnEndPoint ){
stmnScrollAmount = Math.ceil( Math.abs( stmnEndPoint - stmnStartPoint ) / 15 );
this.STATICMENU.style.top = parseInt(this.STATICMENU.style.top, 10) + ( ( stmnEndPoint < stmnStartPoint ) ? -stmnScrollAmount : stmnScrollAmount );
stmnRefreshTimer = this.stmnScrollSpeed;
}
this.stmnTimer = setTimeout (this.TimerName+".RefreshStaticMenu();", stmnRefreshTimer);
}
this.ReadCookie = function (name){
var label = name + "=", labelLen = label.length, cLen = document.cookie.length;
for(i=0;i < cLen;i++){
var j = i + labelLen;
if(document.cookie.substring(i, j) == label){
var cEnd = document.cookie.indexOf(";", j);
if(cEnd == -1) cEnd = document.cookie.length;
return unescape(document.cookie.substring(j, cEnd));
}
}
return "";
}
this.SaveCookie = function (name, value, expire){
var eDate = new Date();
eDate.setDate(eDate.getDate() + expire);
document.cookie = name + "=" + value + "; expires=" + eDate.toGMTString()+ "; path=/";
}
}
//-->
bibaram