묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
jsp파일안에 있는 자바코드를 따로 자바스크립트파일로 빼면 기능이 안먹어요
2016.10.16 18:29
지금하는내용이 스크롤하면 그옆에 따라 내려가는 플로팅메뉴입니다.
밑의 코드가 위에꺼는 웹화면에 나오는 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>
댓글 0
글쓴이 | 제목 | 최종 글 |
---|---|---|
XE | 공지 글 쓰기,삭제 운영방식 변경 공지 [16] | 2019.03.05 by 남기남 |
pssaz2075 | xe 처음 사용하는데 에러가.. | |
영신 | 회원추가가 왜 안될까요? | |
홍수영 | XE 파일첨부 불가 문제 | |
김흥진 | 관리자로 사이트 메뉴 편집시 바로 반영 안되는 문제 [2] | 2017.07.13 by 라돌체 |
씨지크 | xe_tags 테이블에 태그를 등록하는 방법 문의드립니다.ㅠㅠ [3] | 2017.07.13 by sejin7940 |
브랜든a | XE 사이트에 해외결제시스템 [1] | 2017.07.13 by sejin7940 |
홈런볼11 | 관리자 접근시 특정 ip 만 접근 허용 [1] | 2017.07.13 by sejin7940 |
뚜니 |
xe 설치후 어제까지 작업했는데 오늘 화면이 하얀색으로
![]() | |
조단바 | 파일업로드 용량 [2] | 2017.07.13 by 조단바 |
라이언 | SSL 질문 드립니다 | |
sheis**** | XE 게시판 권한(윅스 홈페이지 사용중) | |
★키메라★ | 호스팅업체 랜섬웨어로인해 관리자페이지 접속에러 [1] | 2017.07.12 by Luatic™ |
내손을잡아요 | [코어 ] XpressEngine ver. 1.8.42 - 업데이트 오류 [2] | 2017.07.12 by 내손을잡아요 |
박하향풍선껌 |
확장변수값중 일부는 관리자만 보이게 하는 방법 알려주세요
[2]
![]() | 2017.07.12 by 박하향풍선껌 |
조단바 | 게시판목록 크기 조절. [2] | 2017.07.12 by 조단바 |
라라라 | 네이버 소셜로그인 성인인증 방법 | |
몽5db72 |
로그인창이 밑으로 바뀌었어요
[3]
![]() | 2017.07.11 by 몽5db72 |
몽5db72 |
갑자기 파일첨부가 안되네요.
![]() | |
최윤한 | 로그인 유지 체크해야만 로그인이 되는 문제 | |
봉당구 | 배경색을 검정색으로 바꾸고싶습니다. [2] | 2017.07.11 by 봉당구 |