神龙之初

导航

菜单或浮动窗口被Select等对象遮盖的解决方案

<script language="JavaScript">
function showEleObj() {
// showElement("IFRAME");
// showElement("OBJECT");
 showElement("SELECT");
}
function hideEleObj(menuid) {
 var ox = parseInt(menuid.style.left);
 var oy = parseInt(menuid.style.top);
 var ow = menuid.offsetWidth;
 var oh = menuid.offsetHeight;
// hideElement("IFRAME", ox, oy, ow, oh);
// hideElement("OBJECT", ox, oy, ow, oh);
 hideElement("SELECT", ox, oy, ow, oh);
}
function showElement(elmID){
  for (i = 0; i < document.all.tags(elmID).length; i++)    {
        obj = document.all.tags(elmID)[i];
        if (! obj || ! obj.offsetParent)
            continue;
        obj.style.visibility = "";
    }
}
function hideElement(elmID, ox, oy, ow, oh){
    ox = parseInt(ox);
    oy = parseInt(oy);
    ow = parseInt(ow);
    oh = parseInt(oh);
    for (i = 0; i < document.all.tags(elmID).length; i++)    {
        obj = document.all.tags(elmID)[i];
        if (! obj || ! obj.offsetParent)
            continue;
        objLeft = obj.offsetLeft;
        objTop = obj.offsetTop;
        objParent = obj.offsetParent;
        while (objParent.tagName.toUpperCase() != "BODY")    {
            objLeft += objParent.offsetLeft;
            objTop += objParent.offsetTop;
            objParent = objParent.offsetParent;
        }
        if ( (ox > (objLeft+obj.offsetWidth)) || (objLeft > (ox+ow)) || (objTop > (oy+oh)) || (oy>(objTop+obj.offsetHeight)) )
   obj.style.visibility = "";
        else
            obj.style.visibility = "hidden";
    }
}
</script>

<select></select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select></select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select></select><br>
<br><br><br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select></select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select></select>&nbsp;&nbsp;&nbsp;&nbsp;<select></select><br>
<br><br><br><br>
&nbsp;&nbsp;&nbsp;&nbsp;<select></select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select></select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select></select>
&nbsp;&nbsp;&nbsp;&nbsp;<select></select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select></select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select></select><br><br>
<br><br><br><br><br><br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select></select>&nbsp;&nbsp;&nbsp;&nbsp;<select></select>&nbsp;&nbsp;&nbsp;&nbsp;<select></select><br>
<br>

<div id="dd" style="position:absolute; left:297px; top:114px; width:130px; height:40px; z-index:1">
 <img src="http://www.blueidea.com/img/logo.gif" border=1>
</div>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var xPos = 20;
var yPos = document.body.clientHeight;
var step = 1;
var delay = 30;
var height = 0;
var Hoffset = 0;
var Woffset = 0;
var yon = 0;
var xon = 0;
var pause = true;
var interval;
dd.style.top = yPos;
function changePos() {
 width = document.body.clientWidth;
 height = document.body.clientHeight;
 Hoffset = dd.offsetHeight;
 Woffset = dd.offsetWidth;
 dd.style.left = xPos + document.body.scrollLeft;
 dd.style.top = yPos + document.body.scrollTop;
 if (yon) {
  yPos = yPos + step;
 } else {
  yPos = yPos - step;
 }
 if (yPos < 0) {
  yon = 1;
  yPos = 0;
 }
 if (yPos >= (height - Hoffset)) {
  yon = 0;
  yPos = (height - Hoffset);
 }
 if (xon) {
  xPos = xPos + step;
 } else {
  xPos = xPos - step;
 }
 if (xPos < 0) {
  xon = 1;
  xPos = 0;
 }
 if (xPos >= (width - Woffset)) {
  xon = 0;
  xPos = (width - Woffset);
 }
 hideEleObj(dd);
}
function start() {
 dd.visibility = "visible";
 interval = setInterval('changePos()', delay);
}
function pause_resume() {
 if(pause) {
  clearInterval(interval);
  pause = false;
 } else {
  interval = setInterval('changePos()',delay);
  pause = true;
 }
}
start();
//  End -->
</script>

posted on 2005-02-03 16:44  David  阅读(666)  评论(0编辑  收藏  举报