sir.co.kr 의 메뉴 따라하기 (2005.09.20수정) 정보
sir.co.kr 의 메뉴 따라하기 (2005.09.20수정)
본문
지금 상단에 보이는 멋드러지면서도 브라우저 호환성도 완벽(?)한 이 메뉴를 뽀려오는 방법입니다.
관리자님께서 head.php 를 공개하셨기에 정리해서 올립니다.
(sir의 head처럼 php로 무장하지 않았으니 저같은 짜집퍼(?)에게는 오히려 이 방법이 쉬울겁니다)
먼저 head.sub.php 맨 아래 아래 내용을 넣습니다.
수정하지 않으셨다면 <a name="g4_head"></a> 아래 넣게되겠죠.
------------------------------------------------------------------------------------------------------------
<!-- 메인메뉴용 스크립트 -->
<script language="JavaScript">
var save_layer = null;
function layer_view(link_id, menu_id, opt, x, y)
{
var link = document.getElementById(link_id);
var menu = document.getElementById(menu_id);
//for (i in link) { document.write(i + '<br/>'); } return;
if (save_layer != null)
{
save_layer.style.display = "none";
selectBoxVisible();
}
if (link_id == '')
return;
if (opt == 'hide')
{
menu.style.display = 'none';
selectBoxVisible();
}
else
{
x = parseInt(x);
y = parseInt(y);
menu.style.left = get_left_pos(link) + x;
menu.style.top = get_top_pos(link) + link.offsetHeight + y;
menu.style.display = 'block';
}
save_layer = menu;
}
function preload() {
if (!document.images) return;
var ar = new Array();
var arguments = preload.arguments;
for (var i = 0; i < arguments.length; i++) {
ar[i] = new Image();
ar[i].src = arguments[i];
}
//alert(arguments.length);
}
</script>
<script language="javascript" src="<?=$g4[path]?>/js/sideview.js"></script>
<script language="JavaScript">
function disp_menu(id)
{
//document.getElementById('menu_gnuboard4').style.display = 'none';
document.getElementById(id).style.display = '';
}
</script>
<STYLE>
.bg_menu1 { height:22px;
border-left-width:1px; border-left-style:solid; border-left-color:#9DADE5;
border-right-width:1px; border-right-style:solid; border-right-color:#9DADE5;
padding-left:15px;
padding-right:15px;
background-color:#F6FAFF; }
.bg_line1 { height:1px; background-color:#9DADE5; }
</STYLE>
------------------------------------------------------------------------------------------------------------
여기서 sideview.js 는 게시판일 경우 불러와 지는탓에 그냥 요렇게 둘 경우
게시판 상태에서는 스크립트를 두번 불러오게 됩니다.
if($bo_table) 로 게시판일 경우 막아도 될것같은데 어짜피 별 차이 없을것 같으니 그냥 위 쏘스대로 써먹어도 될것 같습니다
그리고 메뉴위에 바짝 붙여 써먹어도 사실상 상관 없지만.. 웬지 head.sub에 넣는게 심적으로 든든합니다(말도안됨 ㅋㅋ)
다음으로 메뉴를 넣고싶은곳에
------------------------------------------------------------------------------------------------------------
<a href="경로"><img src="이미지경로" border=0 id='id_home' onmouseover="layer_view('id_home', 'menu_home', 'view', 0, 2);"></a>
<a href="경로"><img src="이미지경로" border=0 id='id_sir' onmouseover="layer_view('id_sir', 'menu_sir', 'view', 0, 2);"></a>
<a href="경로"><img src="이미지경로" border=0 id='id_commu' onmouseover="layer_view('id_commu', 'menu_commu', 'view', 0, 2);"></a>
------------------------------------------------------------------------------------------------------------
요런식으로 넣어주시면 됩니다.
id_아이디값 , menu_아이디값
다르게 만들면 메뉴를 여러개 만들수도 있겠습니다.
여기서 'view', 0, 2 부분이 메뉴 가로세로 시작하는 위치 입니다. 버튼과 띄우기 싫다면 0, 0 으로 하면 되고 마이너스도 됩니다.
다음으로 마우스 댔을때 뜨는 레이어 테이블 입니다. 위 아이디값과 같아야 됩니다.
-------------------------------------------------------------------------------------------------------------
<table width=100 id='menu_home' cellpadding=0 cellspacing=0 style='position:absolute; display:none;' onpropertychange="selectBoxHidden('menu_home')">
<tr>
<td class=bg_menu1 width=100><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_introduc'>메뉴1</a></td>
</tr>
<tr>
<td class=bg_menu1><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_news'>메뉴2</a></td>
</tr>
<tr>
<td class=bg_line1></td>
</tr>
</table>
<table width=100 id='menu_sir' cellpadding=0 cellspacing=0 style='position:absolute; display:none;' onpropertychange="selectBoxHidden('menu_sir')">
<tr>
<td class=bg_menu1 width=100><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_introduc'>메뉴1</a></td>
</tr>
<tr>
<td class=bg_menu1><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_news'>메뉴2</a></td>
</tr>
<tr>
<td class=bg_line1></td>
</tr>
</table>
<table width=100 id='menu_commu' cellpadding=0 cellspacing=0 style='position:absolute; display:none;' onpropertychange="selectBoxHidden('menu_commu')">
<tr>
<td class=bg_menu1 width=100><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_introduc'>메뉴1</a></td>
</tr>
<tr>
<td class=bg_menu1><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_news'>메뉴2</a></td>
</tr>
<tr>
<td class=bg_line1></td>
</tr>
</table>
----------------------------------------------------------------------------------------------------------------
여기서 일정한 테이블의 크기를 정해주고 싶다면 table 에 width 를 주고 셀(td) 중 하나이상에도 같은 width 을 줘야 되더군요.
이유는 모릅니다만 익스플로러는 table의 width 만 인식하고, 파이어폭스는 td의 width만 인식합니다.
끝입니다.
아주 간단하지요?
여기서 주의점 하나..
그냥 위 처럼 해서 쓰면 마우스가 레이어에서 사라져도 레이어가 계속 떠있습니다.
다른메뉴로 스위치는 되지만 페이지가 새로고침(이동)되기 이전에는 사라지지 않습니다.
나름대로 그럴 경우가 더 좋은홈이 있겠습니다만... sir처럼 마우스가 레이어나 버튼에서 벗어나면 레이어를 숨기고 싶다면
그 주변에 있는 table 혹은 td 등과 같은곳에 onmouseover="layer_view('','','','','')" 를 넣어주셔야 됩니다.
<table border=0 onmouseover="layer_view('','','','','')">
<tr>
<td onmouseover="layer_view('','','','','')">
.
.
.
이런식으로 말입니다..
메뉴를 덥는 테이블에 onmouseover="layer_view('','','','','')" 가 있다면 메뉴가 안나타나니 주의해야 됩니다.
쉽게 예를들어 순십간에 급조한 파일을 첨부해 설명하자면..
그림에서 처럼 적색 부분에 메뉴가 들어간다면
청색 테이블의 table 에 onmouseover="layer_view('','','','','')" 삽입.
연녹색 셀 td 에 onmouseover="layer_view('','','','','')" 삽입 (그러면 3번 테이블은 자연적으로 종속됨)
관리자님께서 head.php 를 공개하셨기에 정리해서 올립니다.
(sir의 head처럼 php로 무장하지 않았으니 저같은 짜집퍼(?)에게는 오히려 이 방법이 쉬울겁니다)
먼저 head.sub.php 맨 아래 아래 내용을 넣습니다.
수정하지 않으셨다면 <a name="g4_head"></a> 아래 넣게되겠죠.
------------------------------------------------------------------------------------------------------------
<!-- 메인메뉴용 스크립트 -->
<script language="JavaScript">
var save_layer = null;
function layer_view(link_id, menu_id, opt, x, y)
{
var link = document.getElementById(link_id);
var menu = document.getElementById(menu_id);
//for (i in link) { document.write(i + '<br/>'); } return;
if (save_layer != null)
{
save_layer.style.display = "none";
selectBoxVisible();
}
if (link_id == '')
return;
if (opt == 'hide')
{
menu.style.display = 'none';
selectBoxVisible();
}
else
{
x = parseInt(x);
y = parseInt(y);
menu.style.left = get_left_pos(link) + x;
menu.style.top = get_top_pos(link) + link.offsetHeight + y;
menu.style.display = 'block';
}
save_layer = menu;
}
function preload() {
if (!document.images) return;
var ar = new Array();
var arguments = preload.arguments;
for (var i = 0; i < arguments.length; i++) {
ar[i] = new Image();
ar[i].src = arguments[i];
}
//alert(arguments.length);
}
</script>
<script language="javascript" src="<?=$g4[path]?>/js/sideview.js"></script>
<script language="JavaScript">
function disp_menu(id)
{
//document.getElementById('menu_gnuboard4').style.display = 'none';
document.getElementById(id).style.display = '';
}
</script>
<STYLE>
.bg_menu1 { height:22px;
border-left-width:1px; border-left-style:solid; border-left-color:#9DADE5;
border-right-width:1px; border-right-style:solid; border-right-color:#9DADE5;
padding-left:15px;
padding-right:15px;
background-color:#F6FAFF; }
.bg_line1 { height:1px; background-color:#9DADE5; }
</STYLE>
------------------------------------------------------------------------------------------------------------
여기서 sideview.js 는 게시판일 경우 불러와 지는탓에 그냥 요렇게 둘 경우
게시판 상태에서는 스크립트를 두번 불러오게 됩니다.
if($bo_table) 로 게시판일 경우 막아도 될것같은데 어짜피 별 차이 없을것 같으니 그냥 위 쏘스대로 써먹어도 될것 같습니다
그리고 메뉴위에 바짝 붙여 써먹어도 사실상 상관 없지만.. 웬지 head.sub에 넣는게 심적으로 든든합니다(말도안됨 ㅋㅋ)
다음으로 메뉴를 넣고싶은곳에
------------------------------------------------------------------------------------------------------------
<a href="경로"><img src="이미지경로" border=0 id='id_home' onmouseover="layer_view('id_home', 'menu_home', 'view', 0, 2);"></a>
<a href="경로"><img src="이미지경로" border=0 id='id_sir' onmouseover="layer_view('id_sir', 'menu_sir', 'view', 0, 2);"></a>
<a href="경로"><img src="이미지경로" border=0 id='id_commu' onmouseover="layer_view('id_commu', 'menu_commu', 'view', 0, 2);"></a>
------------------------------------------------------------------------------------------------------------
요런식으로 넣어주시면 됩니다.
id_아이디값 , menu_아이디값
다르게 만들면 메뉴를 여러개 만들수도 있겠습니다.
여기서 'view', 0, 2 부분이 메뉴 가로세로 시작하는 위치 입니다. 버튼과 띄우기 싫다면 0, 0 으로 하면 되고 마이너스도 됩니다.
다음으로 마우스 댔을때 뜨는 레이어 테이블 입니다. 위 아이디값과 같아야 됩니다.
-------------------------------------------------------------------------------------------------------------
<table width=100 id='menu_home' cellpadding=0 cellspacing=0 style='position:absolute; display:none;' onpropertychange="selectBoxHidden('menu_home')">
<tr>
<td class=bg_menu1 width=100><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_introduc'>메뉴1</a></td>
</tr>
<tr>
<td class=bg_menu1><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_news'>메뉴2</a></td>
</tr>
<tr>
<td class=bg_line1></td>
</tr>
</table>
<table width=100 id='menu_sir' cellpadding=0 cellspacing=0 style='position:absolute; display:none;' onpropertychange="selectBoxHidden('menu_sir')">
<tr>
<td class=bg_menu1 width=100><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_introduc'>메뉴1</a></td>
</tr>
<tr>
<td class=bg_menu1><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_news'>메뉴2</a></td>
</tr>
<tr>
<td class=bg_line1></td>
</tr>
</table>
<table width=100 id='menu_commu' cellpadding=0 cellspacing=0 style='position:absolute; display:none;' onpropertychange="selectBoxHidden('menu_commu')">
<tr>
<td class=bg_menu1 width=100><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_introduc'>메뉴1</a></td>
</tr>
<tr>
<td class=bg_menu1><a href='<?=$g4[bbs_path]?>/board.php?bo_table=iriver_news'>메뉴2</a></td>
</tr>
<tr>
<td class=bg_line1></td>
</tr>
</table>
----------------------------------------------------------------------------------------------------------------
여기서 일정한 테이블의 크기를 정해주고 싶다면 table 에 width 를 주고 셀(td) 중 하나이상에도 같은 width 을 줘야 되더군요.
이유는 모릅니다만 익스플로러는 table의 width 만 인식하고, 파이어폭스는 td의 width만 인식합니다.
끝입니다.
아주 간단하지요?
여기서 주의점 하나..
그냥 위 처럼 해서 쓰면 마우스가 레이어에서 사라져도 레이어가 계속 떠있습니다.
다른메뉴로 스위치는 되지만 페이지가 새로고침(이동)되기 이전에는 사라지지 않습니다.
나름대로 그럴 경우가 더 좋은홈이 있겠습니다만... sir처럼 마우스가 레이어나 버튼에서 벗어나면 레이어를 숨기고 싶다면
그 주변에 있는 table 혹은 td 등과 같은곳에 onmouseover="layer_view('','','','','')" 를 넣어주셔야 됩니다.
<table border=0 onmouseover="layer_view('','','','','')">
<tr>
<td onmouseover="layer_view('','','','','')">
.
.
.
이런식으로 말입니다..
메뉴를 덥는 테이블에 onmouseover="layer_view('','','','','')" 가 있다면 메뉴가 안나타나니 주의해야 됩니다.
쉽게 예를들어 순십간에 급조한 파일을 첨부해 설명하자면..
그림에서 처럼 적색 부분에 메뉴가 들어간다면
청색 테이블의 table 에 onmouseover="layer_view('','','','','')" 삽입.
연녹색 셀 td 에 onmouseover="layer_view('','','','','')" 삽입 (그러면 3번 테이블은 자연적으로 종속됨)
추천
1
1
댓글 24개

많은 분들이 기다리던 소식이 아닌가 합니다^^
감사합니다 고냉이님!
얼른 작업해 봐야 겠습니다ㅎㅎ
초보들에겐 아무리 쉬운것도 어려워 보이는군요^^
감사합니다 고냉이님!
얼른 작업해 봐야 겠습니다ㅎㅎ
초보들에겐 아무리 쉬운것도 어려워 보이는군요^^
고냉이님의 강좌를 보고 따라해봐야겠습니다. 고맙습니다.
저도 몇일째 head.php를 분석중이입니다. ㅎㅎ
게시판일때 sideview.js 중복 방지를 위해
<script language="javascript" src="js/sideview.js"></script> 부분을 아래소스로 바꿔서 쓰고 있습니다.
<?
//게시판일때 sideview.js 중복 방지
if($bo_table) {
//게시판일때 넘김
} else {
echo "<script language='javascript' src='$g4[path]/js/sideview.js'></script>";
// include_once("$g4[path]/js/sideview.js"); //이경우는 소스코드가 보여짐
}
?>
*일일이 주변 테이블에 onmouseover="layer_view('','','','','')" 를 넣어주는 것이 문제군요.
메뉴에서 onmouseout이벤트로 해주면 좋을것 같은데 잘 않됩니다.
게시판일때 sideview.js 중복 방지를 위해
<script language="javascript" src="js/sideview.js"></script> 부분을 아래소스로 바꿔서 쓰고 있습니다.
<?
//게시판일때 sideview.js 중복 방지
if($bo_table) {
//게시판일때 넘김
} else {
echo "<script language='javascript' src='$g4[path]/js/sideview.js'></script>";
// include_once("$g4[path]/js/sideview.js"); //이경우는 소스코드가 보여짐
}
?>
*일일이 주변 테이블에 onmouseover="layer_view('','','','','')" 를 넣어주는 것이 문제군요.
메뉴에서 onmouseout이벤트로 해주면 좋을것 같은데 잘 않됩니다.
head에 javascript로 document.all.onmouseout 이벤트를 걸어주면 안될까요?
한번 시도해봐야 겠네요, 좋은 정보 감사드립니다.
고맙습니다.

바보같이..
js/sideview.js 파일에 경로(g4[path])를 안줬더군요.
그냥 위 수정한 내용대로 적용해 쓰세요
보드이면서 글쓰기가 아닐경우 sideview.js를 불러온다는 조건을 줘도되지만
sir도 두번 불러와지는데 뭐 찝찝할것 있나요%^^
js/sideview.js 파일에 경로(g4[path])를 안줬더군요.
그냥 위 수정한 내용대로 적용해 쓰세요
보드이면서 글쓰기가 아닐경우 sideview.js를 불러온다는 조건을 줘도되지만
sir도 두번 불러와지는데 뭐 찝찝할것 있나요%^^
우어어... 고맙습니다... 관리자님의 소스를 보면 기쁨과 좌절을 맞보고 있었는데... 쪼꼼은 위안이.. T_T
고냉이님 덕분에 잘 쓰고 있는데요...
다른건 이상 없는데 게시판 쓰기 창에서 마우스가 메뉴에 갔을때 처음 접촉된곳에선 부메뉴가 열리는데 옆에 있는 메뉴로 마우스가 가면 부메뉴가 안열리는데요.......
다른건 이상 없는데 게시판 쓰기 창에서 마우스가 메뉴에 갔을때 처음 접촉된곳에선 부메뉴가 열리는데 옆에 있는 메뉴로 마우스가 가면 부메뉴가 안열리는데요.......
헤드메뉴

상단 메뉴
메뉴
감사합니다.
sir.co.kr 상단 메뉴바
초심자이다 보니.. 이해가 부족하네요..??
먼저 head.sub.php 맨 아래 아래 내용을 넣습니다.
수정하지 않으셨다면 <a name="g4_head"></a> 아래 넣게되겠죠
요기까지는 알겠는데, 그다음의 메뉴를 넣고 싶은 곳에.. 는 어떤 파일을 수정하는 것이죠?
먼저 head.sub.php 맨 아래 아래 내용을 넣습니다.
수정하지 않으셨다면 <a name="g4_head"></a> 아래 넣게되겠죠
요기까지는 알겠는데, 그다음의 메뉴를 넣고 싶은 곳에.. 는 어떤 파일을 수정하는 것이죠?
메뉴를 어디다 넣나요
감사합니다.
저도 테스님과 똑 같은 심정입니다.
위 강좌 적용하신분 파일하나 올려주시면 안될까요?
따라하기조차 힘든 초보입니다.
위 강좌 적용하신분 파일하나 올려주시면 안될까요?
따라하기조차 힘든 초보입니다.
메뉴바 자동 스ㅡ립트
고맙습니다.
좋은팁 잘봤습니다.
^^
고맙습니다~~
함 해보겟습니다