묻고답하기

지금하는내용이 스크롤하면 그옆에 따라 내려가는 플로팅메뉴입니다.

밑의 코드가 위에꺼는 웹화면에 나오는 div부분이구 아래꺼가 jsp안에서 쓰인 자바스크립트코드입니다 . 안에 길이를 너무많이 차지해서 따로 javascript source file로 이름은 floating.js로 만들어서 거기다 붙여넣기해서 jsp안에

이거썻는데도 기능이 안먹네요ㅠㅠ 왜그런걸까요?

 

<div class="article">
<div id="floatdiv" style="padding: 16px; border: 2px solid black; border-image: none; left: 1269px;
 top: 10px; width: 233px; height: 46px; position: absolute; z-index: 1; background-color: whitesmoke;
  layer-background-color: red;">
  <span style="color: rosybrown;">
플로팅메뉴
  </span> 
  </div>                
</div>

 

<script type="text/javascript">
var floatingMenuId = 'floatdiv';
var floatingMenu =
{
    targetX: -250,
    targetY: 10,

    hasInner: typeof(window.innerWidth) == 'number',
    hasElement: document.documentElement
        && document.documentElement.clientWidth,

    menu:
        document.getElementById
        ? document.getElementById(floatingMenuId)
        : document.all
          ? document.all[floatingMenuId]
          : document.layers[floatingMenuId]
};


floatingMenu.move = function ()
{
    if (document.layers)
    {
        floatingMenu.menu.left = floatingMenu.nextX;
        floatingMenu.menu.top = floatingMenu.nextY;
    }
    else
    {
        floatingMenu.menu.style.left = floatingMenu.nextX + 'px';
        floatingMenu.menu.style.top = floatingMenu.nextY + 'px';
    }
}

floatingMenu.computeShifts = function ()
{
    var de = document.documentElement;

    floatingMenu.shiftX =
        floatingMenu.hasInner
        ? pageXOffset
        : floatingMenu.hasElement
          ? de.scrollLeft
          : document.body.scrollLeft;
    if (floatingMenu.targetX < 0)
    {
        if (floatingMenu.hasElement && floatingMenu.hasInner)
        {
            // Handle Opera 8 problems
            floatingMenu.shiftX +=
                de.clientWidth > window.innerWidth
                ? window.innerWidth
                : de.clientWidth
        }
        else
        {
            floatingMenu.shiftX +=
                floatingMenu.hasElement
                ? de.clientWidth
                : floatingMenu.hasInner
                  ? window.innerWidth
                  : document.body.clientWidth;
        }
    }

    floatingMenu.shiftY = 
        floatingMenu.hasInner
        ? pageYOffset
        : floatingMenu.hasElement
          ? de.scrollTop
          : document.body.scrollTop;
    if (floatingMenu.targetY < 0)
    {
        if (floatingMenu.hasElement && floatingMenu.hasInner)
        {
            // Handle Opera 8 problems
            floatingMenu.shiftY +=
                de.clientHeight > window.innerHeight
                ? window.innerHeight
                : de.clientHeight
        }
        else
        {
            floatingMenu.shiftY +=
                floatingMenu.hasElement
                ? document.documentElement.clientHeight
                : floatingMenu.hasInner
                  ? window.innerHeight
                  : document.body.clientHeight;
        }
    }
}

floatingMenu.doFloat = function()
{
    var stepX, stepY;

    floatingMenu.computeShifts();

    stepX = (floatingMenu.shiftX + 
        floatingMenu.targetX - floatingMenu.nextX) * .07;
    if (Math.abs(stepX) < .5)
    {
        stepX = floatingMenu.shiftX +
            floatingMenu.targetX - floatingMenu.nextX;
    }

    stepY = (floatingMenu.shiftY + 
        floatingMenu.targetY - floatingMenu.nextY) * .07;
    if (Math.abs(stepY) < .5)
    {
        stepY = floatingMenu.shiftY + 
            floatingMenu.targetY - floatingMenu.nextY;
    }

    if (Math.abs(stepX) > 0 ||
        Math.abs(stepY) > 0)
    {
        floatingMenu.nextX += stepX;
        floatingMenu.nextY += stepY;
        floatingMenu.move();
    }

    setTimeout('floatingMenu.doFloat()', 20);
};

// addEvent designed by Aaron Moore
floatingMenu.addEvent = function(element, listener, handler)
{
    if(typeof element[listener] != 'function' || 
       typeof element[listener + '_num'] == 'undefined')
    {
        element[listener + '_num'] = 0;
        if (typeof element[listener] == 'function')
        {
            element[listener + 0] = element[listener];
            element[listener + '_num']++;
        }
        element[listener] = function(e)
        {
            var r = true;
            e = (e) ? e : window.event;
            for(var i = element[listener + '_num'] -1; i >= 0; i--)
            {
                if(element[listener + i](e) == false)
                    r = false;
            }
            return r;
        }
    }

    //if handler is not already stored, assign it
    for(var i = 0; i < element[listener + '_num']; i++)
        if(element[listener + i] == handler)
            return;
    element[listener + element[listener + '_num']] = handler;
    element[listener + '_num']++;
};

floatingMenu.init = function()
{
    floatingMenu.initSecondary();
    floatingMenu.doFloat();
};

// Some browsers init scrollbars only after
// full document load.
floatingMenu.initSecondary = function()
{
    floatingMenu.computeShifts();
    floatingMenu.nextX = floatingMenu.shiftX +
        floatingMenu.targetX;
    floatingMenu.nextY = floatingMenu.shiftY +
        floatingMenu.targetY;
    floatingMenu.move();
}

if (document.layers)
    floatingMenu.addEvent(window, 'onload', floatingMenu.init);
else
{
    floatingMenu.init();
    floatingMenu.addEvent(window, 'onload',
        floatingMenu.initSecondary);
}

</script>

 

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
영흥도우럭1 사이트 이전할때요...  
masu**** permission denied 문제 질문드립니다.  
예진JEvans Xedition 의 html 파일에 <head>가 없는데CDN 어디에 넣나요? [2] 2016.10.17 by 예진JEvans
예진JEvans xedition 의 상단 GNB 3차메뉴 없애는법 부탁드립니다 [2] 2016.10.16 by 예진JEvans
qorhvma jsp파일안에 있는 자바코드를 따로 자바스크립트파일로 빼면 기능이 안먹어요  
영흥도우럭1 위젯에 왜 이런 기능은 없는걸까요? [2] 2016.10.16 by 영흥도우럭1
박호준73dae 최근게시물 닉네임 짤림문제. [2] file 2016.10.16 by 불금
제로캠프 모바일 기본레이아웃 + 기본게시판 댓글보기 오픈안됨 [1] 2016.10.16 by 제로캠프
qorhvma 이 기능(홈페이지첨부) 꼭 쓰고싶은데 정확한 명칭알려주세요 [2] 2016.10.15 by flowerrain
홈런볼11 게시판 등록 버튼 링크 관련 [2] 2016.10.15 by 홈런볼11
suengj**** 특정 게시판만 들어가면 성인 및 도박사이트가 자동으로 열립니다. [1] 2016.10.15 by sejin7940
richardhj 사이트 레이아웃문제..layout.html 없다고나오는문제.. [3] 2016.10.15 by 제일안전
사마의 최신버전을 새로 설치했는데 다음날 작업하려고 하면 안됨. file  
DAF 토르 브라우저와 공개vpn 사용자 차단방법이 있나요? [1] 2016.10.15 by 기진곰
Jey 홈페이지 오류좀 도와주세요 [3] 2016.10.14 by 불금
박소진 게시글 등록 후, 보이지 않는데..... (도움 부탁드립니다ㅠㅠ) [1] file 2016.10.14 by 제로캠프
hj4 토글메뉴 닫기 누르면 안닫히는 현상 [1] file 2016.10.14 by 제로캠프
ldy**** 버전 업데이트 관련 질문입니다. [3] 2016.10.14 by 제로캠프
제자4a6a3 Error Parsing Template - syntax error, unexpected '{', expecting '(' in template file [2] 2016.10.14 by 제자4a6a3
제자4a6a3 회원설정에서 아이디로 로그인 설정시.  
lgmi**** 1.826 버젼 업글후 에러 [1] file 2016.10.14 by lgmi****
제자4a6a3 XE 회원가입폼에서 아이디 INPUT 태그에 onfocus가 적용이 안됩니다. file  
영흥도우럭1 Unknown column 'comment_srl' in 'where clause' 메세지문제 [4] 2016.10.14 by 영흥도우럭1
쿠닌 어드민 페이지 메뉴 [2] file 2016.10.13 by 쿠닌
killdnism 게시판 글쓰기 후 에러 [1] 2018.02.17 by killdnism
이와이 컨텐츠에 내용을 입력했는데, 저장후 보이지 사라집니다.. [3] file 2016.10.13 by 이와이
마더캣 게시판 에러 해결방법 잘 아시는분.. ㅠ [3] file 2016.10.13 by 제로캠프
이와이 관리 > 고급 > 설치된 위젯 [4] file 2016.10.13 by 이와이
제대로만들자 관리자로그인시 잘못된 요청입니다.에러 좀 봐주세요.. [1] 2016.10.13 by 제로캠프
블링블링 코어 업데이트 이후로 알림센터 오류가 나는데 모듈 재설치하면 될까요? [1] 2016.10.13 by 제로캠프