테스트 사이트 - 개발 중인 베타 버전입니다

자동 스크롤 메뉴 관련 입니다.

· 9년 전 · 313

<script language="javascript">
<!--

var stmnLEFT = 10; // 스크롤메뉴의 좌측 위치
var stmnGAP1 = 10; // 페이지 헤더부분의 여백
var stmnGAP2 = 200; // 스크롤시 브라우저 상단과 약간 띄움. 필요없으면 0으로 세팅
var stmnBASE = 100; // 스크롤메뉴 초기 시작위치 (아무렇게나 해도 상관은 없지만 stmnGAP1과 약간 차이를 주는게 보기 좋음)
 var stmnActivateSpeed = 0; // 움직임을 감지하는 속도 (숫자가 클수록 늦게 알아차림)
var stmnScrollSpeed = 0; // 스크롤되는 속도 (클수록 늦게 움직임)

var stmnTimer;

function ReadCookie(name) {
var label = name + "=";
var labelLen = label.length;
var cLen = document.cookie.length;
var i = 0;

while (i < cLen) {
        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));
        }
                i++;
    }
  return "";
}

function SaveCookie(name, value, expire) {
var eDate = new Date();
eDate.setDate(eDate.getDate() + expire);
document.cookie = name + "=" + value + "; expires=" +  eDate.toGMTString()+ "; path=/";
 }

function RefreshStaticMenu()
        {
                var stmnStartPoint, stmnEndPoint, stmnRefreshTimer;

                stmnStartPoint = parseInt(STATICMENU.style.top, 10);

                                       
                                        stmnEndPoint = document.body.scrollTop + stmnGAP2;
 
                        stmnLimit = parseInt(window.document.body.scrollHeight) - parseInt(STATICMENU.offsetHeight);
                         if (stmnEndPoint > stmnLimit) stmnEndPoint = stmnLimit;
                                        
                                        if (stmnEndPoint < stmnGAP1) stmnEndPoint = stmnGAP1;
 
                stmnRefreshTimer = stmnActivateSpeed;

                if ( stmnStartPoint != stmnEndPoint ) {
                        stmnScrollAmount = Math.ceil( Math.abs( stmnEndPoint - stmnStartPoint ) / 15 );
                         STATICMENU.style.top = parseInt(STATICMENU.style.top, 10) + ( ( stmnEndPoint<stmnStartPoint ) ? -stmnScrollAmount : stmnScrollAmount );
                         stmnRefreshTimer = stmnScrollSpeed;
                }

                stmnTimer = setTimeout ("RefreshStaticMenu();", stmnRefreshTimer);
         }

function ToggleAnimate() {
        if (!ANIMATE.checked) {
                RefreshStaticMenu();
                SaveCookie("ANIMATE", "true", 300);
                } else {
                clearTimeout(stmnTimer);
                STATICMENU.style.top = stmnGAP1;
                SaveCookie("ANIMATE", "false", 300);
        }
}

function InitializeStaticMenu() {
STATICMENU.style.left = stmnLEFT;
        if (ReadCookie("ANIMATE") == "false") {
                ANIMATE.checked = true;
                STATICMENU.style.top = document.body.scrollTop + stmnGAP1;
                } else {
                ANIMATE.checked = false;
                STATICMENU.style.top = document.body.scrollTop + stmnBASE;
                RefreshStaticMenu();
        }
}
//-->
</script>  

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
12099
12097
340
12094
12093
12092
12091
12090
12089
12088
12087
12086
12085
12084
12083
12082
12081
12080
12079
12078
12077
12076
12075
12074
12073