<script type="text/JavaScript">
// Internet Explorer에서 셀렉트박스와 레이어가 겹칠시 레이어가 셀렉트 박스 뒤로 숨는 현상을 해결하는 함수
// 레이어가 셀렉트 박스를 침범하면 셀렉트 박스를 hidden 시킴
// 사용법 :
// <div id=LayerID style="display:none; " onpropertychange="selectbox_hidden('LayerID')">
function selectbox_hidden(layer_id)
{
var ly = eval(layer_id);
// 레이어 좌표
var ly_left = ly.offsetLeft;
var ly_top = ly.offsetTop;
var ly_right = ly.offsetLeft + ly.offsetWidth;
var ly_bottom = ly.offsetTop + ly.offsetHeight;
// 셀렉트박스의 좌표
var el;
for (i=0; i<document.forms.length; i++) {
for (k=0; k<document.forms[i].length; k++) {
el = document.forms[i].elements[k];
if (el.type == "select-one") {
var el_left = el_top = 0;
var obj = el;
if (obj.offsetParent) {
while (obj.offsetParent) {
el_left += obj.offsetLeft;
el_top += obj.offsetTop;
obj = obj.offsetParent;
}
}
el_left += el.clientLeft;
el_top += el.clientTop;
el_right = el_left + el.clientWidth;
el_bottom = el_top + el.clientHeight;
// 좌표를 따져 레이어가 셀렉트 박스를 침범했으면 셀렉트 박스를 hidden 시킴
if ( (el_left >= ly_left && el_top >= ly_top && el_left <= ly_right && el_top <= ly_bottom) ||
(el_right >= ly_left && el_right <= ly_right && el_top >= ly_top && el_top <= ly_bottom) ||
(el_left >= ly_left && el_bottom >= ly_top && el_right <= ly_right && el_bottom <= ly_bottom) ||
(el_left >= ly_left && el_left <= ly_right && el_bottom >= ly_top && el_bottom <= ly_bottom) )
el.style.visibility = 'hidden';
}
}
}
}
// 감추어진 셀렉트 박스를 모두 보이게 함
function selectbox_visible()
{
for (i=0; i<document.forms.length; i++) {
for (k=0; k<document.forms[i].length; k++) {
el = document.forms[i].elements[k];
if (el.type == "select-one" && el.style.visibility == 'hidden')
el.style.visibility = 'visible';
}
}
}
function partAction(arg)
{
if (arg == "") {
document.all['poll'].style.display = "none";
}
else {
document.all['poll'].style.display = "block";
}
}
</script>
<body onLoad="selectbox_hidden('poll')">
<form>
<div id="poll" style="display:block;">
....
</div>
<select>
<option>아파트</option>
</select>
</form>
</body>
"Java Script" 카테고리의 다른 글
[2008/03/25] 자바스크립트를 통한 XML문서 파싱하기 [2008/07/09] 수정이 가능한 텍스트(인라인텍스트에디터) [2008/06/17] 자바 스크립트를 이용한 트리메뉴 [2011/05/11] Caps Lock 키 켜저 있는지 확인 하는 자바스크립트 [2008/07/09] OFCJS (Open Flash Chart) [2007/12/24] 내 글 복사하면 내용이 더 붙어여~ (IE 전용) [2007/11/08] 부드러운 세로 슬라이드 메뉴~!! [2008/09/10] javascript 에서 배열을 사용할때 유의점! [2008/01/18] js :: 팝업메뉴 생성하기 [2008/06/10] 새창자동으로 띄우고 화면중앙정렬





