외부에 스크립트 파일을 만들어 삽입하는 방법이다.

익스플로러와 네츠케이프용 소스가 다 있는 것 인듯.

자바스크립트 파일을 만든다. 파일명: float.js

float.js에 다음 소스를 삽입한다.

------------------------------------------------------------------------------------

var bNetscape4plus = (navigator.appName == "Netscape" && navigator.appVersion.substring(0,1) >= "4");
var bExplorer4plus = (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.substring(0,1) >= "4");
function CheckUIElements(){
        var yMenuFrom, yMenuTo, yButtonFrom, yButtonTo, yOffset, timeoutNextCheck;

        if ( bNetscape4plus ) {
                yMenuFrom   = document["quick"].top;
                yMenuTo     = top.pageYOffset + 125;
        }
        else if ( bExplorer4plus ) {
                yMenuFrom   = parseInt (quick.style.top, 10);
                yMenuTo     = document.body.scrollTop + 125;
        }

        timeoutNextCheck = 500;

        if ( Math.abs (yButtonFrom - (yMenuTo + 152)) < 6 && yButtonTo < yButtonFrom ) {
                setTimeout ("CheckUIElements()", timeoutNextCheck);
                return;
        }

        if ( yButtonFrom != yButtonTo ) {
                yOffset = Math.ceil( Math.abs( yButtonTo - yButtonFrom ) / 10 );
                if ( yButtonTo < yButtonFrom )
                        yOffset = -yOffset;

                if ( bNetscape4plus )
                        document["divLinkButton"].top += yOffset;
                else if ( bExplorer4plus )
                        divLinkButton.style.top = parseInt (divLinkButton.style.top, 10) + yOffset;

                timeoutNextCheck = 10;
        }
        if ( yMenuFrom != yMenuTo ) {
                yOffset = Math.ceil( Math.abs( yMenuTo - yMenuFrom ) / 20 );
                if ( yMenuTo < yMenuFrom )
                        yOffset = -yOffset;

                if ( bNetscape4plus )
                        document["quick"].top += yOffset;
                else if ( bExplorer4plus )
                        quick.style.top = parseInt (quick.style.top, 10) + yOffset;

                timeoutNextCheck = 10;
        }

        setTimeout ("CheckUIElements()", timeoutNextCheck);
}

function OnLoad()
{
        var y;
        if ( top.frames.length )
        if ( bNetscape4plus ) {
                document["quick"].top = top.pageYOffset + 125;
                document["quick"].visibility = "visible";
        }
        else if ( bExplorer4plus ) {
                quick.style.top = document.body.scrollTop + 125;
                quick.style.visibility = "visible";
        }
        CheckUIElements();
        return true;
}
OnLoad();
------------------------------------------------------------------------------

스크롤이 될 퀵메뉴 부분은 아래와 같이 처리한다.

<div id="quick" style="포지션:absolute; left:904px; top:130px; width:94px">
스크롤시킬 내용

<script type="text/javascript" src="/common/float.js"></script>

</div>


스크립트는 반드시 스크롤될 내용 아래쪽에 넣는다. 안 그러면 오류난다.

색이 들어있는 숫자의 수치를 변경하면 퀵메뉴의 top위치가 변경된다.

125 : 페이지가 로드되었을 때 퀵메뉴의 top위치

125와 수치가 다르면 로드되면서 퀵메뉴가 스크롤되는 걸 볼 수 있다.

아마도 두 수치는 같은 걸로 하는게 맞는 것 같다.


포지션쓰면 에러난대서 한글로..;;

+ Recent posts