|
<script language='JavaScript '> // Internet Explorer에서 셀렉트박스와 레이어가 겹칠시 레이어가 셀렉트 박스 뒤로 숨는 현상을 해결하는 함수 // 레이어가 셀렉트 박스를 침범하면 셀렉트 박스를 hidden 시킴 // 사용법 : // <div id=LayerID style="display:none; position:absolute;" 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'; } } } <script language='JavaScript '> 출처 : Tong - ♡우정♡님의 Web Programing통
|
http://kr.blog.yahoo.com/junetee97/trackback/15/143