묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
스타일 시트에서 부메뉴 레이어 고정 시키는 방법?
2003.06.16 14:58
안녕하세요.
모 사이트에서 레이어를 이용한 메뉴소스를 다운받아 사용하는데요.
소스중에 보면 부메뉴 레이어 부분이 마우스의 위치에 따라 변경이 됩니다.
이 부메뉴 레이어를 고정 시킬 수 있는 방법이 있을런지요?
소스는 다음과 같습니다.
<html>
<head>
<title>링크에 마우스가 올라가면 레이어메뉴 박스가 나옵니다.</title>
<style>
<!--
A:link {color:#000000; text-decoration:none}
A:visited {color:#000000; text-decoration:none}
A:active {color:#000000; text-decoration:none}
A:hover {color:#000099; text-decoration:none}
.menuskin{position:absolute; width:165px; background-color:menu;
border:2px solid black; font:normal 12px Verdana; line-height:18px;
z-index:100; visibility:hidden; }
.menuskin a{ text-decoration:none; color:black; padding-left:10px;
padding-right:10px; }
#mouseoverstyle{ background-color:highlight; }
#mouseoverstyle a{ color:white; }
-->
</style>
<script language="JavaScript1.2">
<!---/
var linkset=new Array()
linkset[0]='<div class="menuitems"><a href="http://gif00.com.ne.kr/java/6/48.html"><b>현재페이지</b></a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/java/list/back.html" TARGET="_blank">JavaScript소스</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/board3/" TARGET="_blank">시</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/tag/font.html" TARGET="_blank">초보태그</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/tag/color.html" TARGET="_blank">색상표</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/test.html" TARGET="_blank">태그연습장</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/sokdam/ga1.html" TARGET="_blank">속담</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/sokdam/saja1.html" TARGET="_blank">사자성어</a></div>'
linkset[1]='<div class="menuitems"><a href="http://www.com.ne.kr/" TARGET="_blank">컴내꺼</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://www.naver.com" TARGET="_blank">네이버</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://www.yahoo.com" TARGET="_blank">야후</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://www.hanmir.com" TARGET="_blank">한미르</a></div>'
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns6=document.getElementById&&!document.all
var ns4=document.layers
function showmenu(e,which){
if (!document.all&&!document.getElementById&&!document.layers)
return
clearhidemenu()
menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj
if (ie4||ns6)
menuobj.innerHTML=which
else{
menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width=165 onmouseover="clearhidemenu()" onmouseout="hidemenu()">'+which+'</layer>')
menuobj.document.close()
}
menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
eventX=ie4? event.clientX : ns6? e.clientX : e.x
eventY=ie4? event.clientY : ns6? e.clientY : e.y
//Find out how close the mouse is to the corner of the window
var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<menuobj.contentwidth)
//move the horizontal position of the menu to the left by it's width
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX : ns6? window.pageXOffset+eventX : eventX
//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.thestyle.top=ie4? document.body.scrollTop+eventY-menuobj.contentheight : ns6? window.pageYOffset+eventY-menuobj.contentheight : eventY-menuobj.contentheight
else
menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY : ns6? window.pageYOffset+eventY : eventY
menuobj.thestyle.visibility="visible"
return false
}
function contains_ns6(a, b) {
//Determines if 1 element in contained in another- by Brainjar.com
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}
function hidemenu(){
if (window.menuobj)
menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
}
function dynamichide(e){
if (ie4&&!menuobj.contains(e.toElement))
hidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
hidemenu()
}
function delayhidemenu(){
if (ie4||ns6||ns4)
delayhide=setTimeout("hidemenu()",500)
}
function clearhidemenu(){
if (window.delayhide)
clearTimeout(delayhide)
}
function highlightmenu(e,state){
if (document.all)
source_el=event.srcElement
else if (document.getElementById)
source_el=e.target
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
else{
while(source_el.id!="popmenu"){
source_el=document.getElementById? source_el.parentNode : source_el.parentElement
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
}
}
}
if (ie4||ns6)
document.onclick=hidemenu
/--->
</script>
</head>
<body>
<div id="popmenu" class="menuskin" onMouseover="clearhidemenu();highlightmenu(event,'on')" onMouseout="highlightmenu(event,'off'+ '+ ');dynamichide(event)">
</div>
<font size="2" face="돋움체">
<li><a href="#" onMouseover="showmenu(event,linkset[0])" onMouseout="delayhidemenu()">이미지창고</a>
<li><a href="#" onMouseover="showmenu(event,linkset[1])" onMouseout="delayhidemenu()">포털 사이트</a>
</font>
</body>
</html>
스타일 시트 부분에서 조정하면 가능하다는 말도 들어서
이렇게 저렇게 바꾸어 보았지만 도저히 안돼네요.
아시는분 부탁좀 드리겠습니다.
모 사이트에서 레이어를 이용한 메뉴소스를 다운받아 사용하는데요.
소스중에 보면 부메뉴 레이어 부분이 마우스의 위치에 따라 변경이 됩니다.
이 부메뉴 레이어를 고정 시킬 수 있는 방법이 있을런지요?
소스는 다음과 같습니다.
<html>
<head>
<title>링크에 마우스가 올라가면 레이어메뉴 박스가 나옵니다.</title>
<style>
<!--
A:link {color:#000000; text-decoration:none}
A:visited {color:#000000; text-decoration:none}
A:active {color:#000000; text-decoration:none}
A:hover {color:#000099; text-decoration:none}
.menuskin{position:absolute; width:165px; background-color:menu;
border:2px solid black; font:normal 12px Verdana; line-height:18px;
z-index:100; visibility:hidden; }
.menuskin a{ text-decoration:none; color:black; padding-left:10px;
padding-right:10px; }
#mouseoverstyle{ background-color:highlight; }
#mouseoverstyle a{ color:white; }
-->
</style>
<script language="JavaScript1.2">
<!---/
var linkset=new Array()
linkset[0]='<div class="menuitems"><a href="http://gif00.com.ne.kr/java/6/48.html"><b>현재페이지</b></a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/java/list/back.html" TARGET="_blank">JavaScript소스</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/board3/" TARGET="_blank">시</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/tag/font.html" TARGET="_blank">초보태그</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/tag/color.html" TARGET="_blank">색상표</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/test.html" TARGET="_blank">태그연습장</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/sokdam/ga1.html" TARGET="_blank">속담</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://gif00.com.ne.kr/sokdam/saja1.html" TARGET="_blank">사자성어</a></div>'
linkset[1]='<div class="menuitems"><a href="http://www.com.ne.kr/" TARGET="_blank">컴내꺼</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://www.naver.com" TARGET="_blank">네이버</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://www.yahoo.com" TARGET="_blank">야후</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://www.hanmir.com" TARGET="_blank">한미르</a></div>'
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns6=document.getElementById&&!document.all
var ns4=document.layers
function showmenu(e,which){
if (!document.all&&!document.getElementById&&!document.layers)
return
clearhidemenu()
menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj
if (ie4||ns6)
menuobj.innerHTML=which
else{
menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width=165 onmouseover="clearhidemenu()" onmouseout="hidemenu()">'+which+'</layer>')
menuobj.document.close()
}
menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
eventX=ie4? event.clientX : ns6? e.clientX : e.x
eventY=ie4? event.clientY : ns6? e.clientY : e.y
//Find out how close the mouse is to the corner of the window
var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<menuobj.contentwidth)
//move the horizontal position of the menu to the left by it's width
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX : ns6? window.pageXOffset+eventX : eventX
//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.thestyle.top=ie4? document.body.scrollTop+eventY-menuobj.contentheight : ns6? window.pageYOffset+eventY-menuobj.contentheight : eventY-menuobj.contentheight
else
menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY : ns6? window.pageYOffset+eventY : eventY
menuobj.thestyle.visibility="visible"
return false
}
function contains_ns6(a, b) {
//Determines if 1 element in contained in another- by Brainjar.com
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}
function hidemenu(){
if (window.menuobj)
menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
}
function dynamichide(e){
if (ie4&&!menuobj.contains(e.toElement))
hidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
hidemenu()
}
function delayhidemenu(){
if (ie4||ns6||ns4)
delayhide=setTimeout("hidemenu()",500)
}
function clearhidemenu(){
if (window.delayhide)
clearTimeout(delayhide)
}
function highlightmenu(e,state){
if (document.all)
source_el=event.srcElement
else if (document.getElementById)
source_el=e.target
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
else{
while(source_el.id!="popmenu"){
source_el=document.getElementById? source_el.parentNode : source_el.parentElement
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
}
}
}
if (ie4||ns6)
document.onclick=hidemenu
/--->
</script>
</head>
<body>
<div id="popmenu" class="menuskin" onMouseover="clearhidemenu();highlightmenu(event,'on')" onMouseout="highlightmenu(event,'off'+ '+ ');dynamichide(event)">
</div>
<font size="2" face="돋움체">
<li><a href="#" onMouseover="showmenu(event,linkset[0])" onMouseout="delayhidemenu()">이미지창고</a>
<li><a href="#" onMouseover="showmenu(event,linkset[1])" onMouseout="delayhidemenu()">포털 사이트</a>
</font>
</body>
</html>
스타일 시트 부분에서 조정하면 가능하다는 말도 들어서
이렇게 저렇게 바꾸어 보았지만 도저히 안돼네요.
아시는분 부탁좀 드리겠습니다.