From d95e4acf4d6633ce8ef2de4efc10464052de6557 Mon Sep 17 00:00:00 2001 From: chicpro Date: Tue, 18 Dec 2012 16:29:35 +0900 Subject: [PATCH] =?UTF-8?q?sideview.js=20=ED=8C=8C=EC=9D=BC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/sideview.js | 92 ++++++++++++++++++++++++++------------------------ 1 file changed, 48 insertions(+), 44 deletions(-) diff --git a/js/sideview.js b/js/sideview.js index bfc7da060..224b8c6c2 100644 --- a/js/sideview.js +++ b/js/sideview.js @@ -9,7 +9,7 @@ if (typeof(SIDEVIEW_JS) == 'undefined') // 한번만 실행 // 아래의 소스코드는 daum.net 카페의 자바스크립트를 참고하였습니다. // 회원이름 클릭시 회원정보등을 보여주는 레이어 - function insertHead(name, text, evt) + function insertHead(name, text, evt) { var idx = this.heads.length; var row = new SideViewRow(-idx, name, text, evt); @@ -17,7 +17,7 @@ if (typeof(SIDEVIEW_JS) == 'undefined') // 한번만 실행 return row; } - function insertTail(name, evt) + function insertTail(name, evt) { var idx = this.tails.length; var row = new SideViewRow(idx, name, evt); @@ -25,33 +25,33 @@ if (typeof(SIDEVIEW_JS) == 'undefined') // 한번만 실행 return row; } - function SideViewRow(idx, name, onclickEvent) + function SideViewRow(idx, name, onclickEvent) { this.idx = idx; this.name = name; this.onclickEvent = onclickEvent; this.renderRow = renderRow; - + this.isVisible = true; this.isDim = false; } - function renderRow() + function renderRow() { if (!this.isVisible) return ""; - + var str = "
  • "+this.onclickEvent+"
  • "; return str; } - function showSideView(curObj, mb_id, name, email, homepage) + function showSideView(curObj, mb_id, name, email, homepage) { var sideView = new SideView('nameContextMenu', curObj, mb_id, name, email, homepage); sideView.showLayer(); } - function SideView(targetObj, curObj, mb_id, name, email, homepage) + function SideView(targetObj, curObj, mb_id, name, email, homepage) { this.targetObj = targetObj; this.curObj = curObj; @@ -67,23 +67,23 @@ if (typeof(SIDEVIEW_JS) == 'undefined') // 한번만 실행 this.tails = new Array(); this.insertTail = insertTail; this.getRow = getRow; - this.hideRow = hideRow; + this.hideRow = hideRow; this.dimRow = dimRow; - + // 회원이라면 // (비회원의 경우 검색 없음) //if (g4_is_member) { // 쪽지보내기 - if (mb_id) + if (mb_id) // 불여우 자바스크립트창이 뜨는 오류를 수정 this.insertTail("memo", "쪽지보내기"); // 메일보내기 - if (email) + if (email) this.insertTail("mail", "메일보내기"); // 홈페이지 - if (homepage) + if (homepage) this.insertTail("homepage", "홈페이지"); // 자기소개 - if (mb_id) + if (mb_id) this.insertTail("info", "자기소개"); //} @@ -108,26 +108,30 @@ if (typeof(SIDEVIEW_JS) == 'undefined') // 한번만 실행 } } - function showLayer() + function showLayer() { clickAreaCheck = true; var oSideViewLayer = document.getElementById(this.targetObj); var oBody = document.body; - + var curObjParent = this.curObj.parentNode; + if (oSideViewLayer == null) { oSideViewLayer = document.createElement("div"); oSideViewLayer.id = this.targetObj; oSideViewLayer.style.position = "absolute"; - oBody.appendChild(oSideViewLayer); + //oBody.appendChild(oSideViewLayer); } - oSideViewLayer.innerHTML = this.makeNameContextMenus(); - - if (getAbsoluteTop(this.curObj) + this.curObj.offsetHeight + oSideViewLayer.scrollHeight + 5 > oBody.scrollHeight) - oSideViewLayer.style.top = getAbsoluteTop(this.curObj) - oSideViewLayer.scrollHeight + "px"; - else - oSideViewLayer.style.top = getAbsoluteTop(this.curObj) + this.curObj.offsetHeight + "px"; - oSideViewLayer.style.left = getAbsoluteLeft(this.curObj) - this.curObj.offsetWidth + 14 + "px"; + curObjParent.appendChild(oSideViewLayer); + + oSideViewLayer.innerHTML = this.makeNameContextMenus(); + + if (getAbsoluteTop(this.curObj) + this.curObj.offsetHeight + oSideViewLayer.scrollHeight + 5 > oBody.scrollHeight) + oSideViewLayer.style.top = getAbsoluteTop(this.curObj) - getAbsoluteTop(this.curObj.offsetParent) - oSideViewLayer.scrollHeight + "px"; + else + oSideViewLayer.style.top = getAbsoluteTop(this.curObj) - getAbsoluteTop(this.curObj.offsetParent) + this.curObj.offsetHeight + "px"; + + oSideViewLayer.style.left = getAbsoluteLeft(this.curObj) - getAbsoluteLeft(this.curObj.offsetParent) - this.curObj.offsetWidth + 65 + "px"; divDisplay(this.targetObj, 'block'); @@ -158,33 +162,33 @@ if (typeof(SIDEVIEW_JS) == 'undefined') // 한번만 실행 } - function makeNameContextMenus() + function makeNameContextMenus() { var str = ""; return str; } - function getRow(name) + function getRow(name) { var i = 0; var row = null; - for (i=0; i