这面文章能解决问题如何使层在控件之上
var HideElementTemp = new Array();
//点击菜单时,调用此的函数,菜单对象
function cal_hideElementAll(obj){
cal_HideElement("IMG",obj);
cal_HideElement("SELECT",obj);
cal_HideElement("OBJECT",obj);
cal_HideElement("IFRAME",obj);
}
function cal_HideElement(strElementTagName,obj){
try{
var showDivElement = obj;
var calendarDiv = obj);
var intDivLeft = cal_GetOffsetLeft(showDivElement);
var intDivTop = cal_GetOffsetTop(showDivElement);//+showDivElement.offsetHeight;
for(i=0;i<window.document.all.tags(strElementTagName).length; i++){
var objTemp = window.document.all.tags(strElementTagName)[i];
if(!objTemp||!objTemp.offsetParent||objTemp==goYearSelect||objTemp==goMonthSelect)
continue;
var intObjLeft=cal_GetOffsetLeft(objTemp);
var intObjTop=cal_GetOffsetTop(objTemp);
if(((intObjLeft+objTemp.clientWidth)>intDivLeft)&&
(intObjLeft<intDivLeft+calendarDiv.style.posWidth)&&
(intObjTop+objTemp.clientHeight>intDivTop)&&
(intObjTop<intDivTop+calendarDiv.style.posHeight)){
var intTempIndex=HideElementTemp.length;//已经有的长度
//save elementTagName is stutas
HideElementTemp[intTempIndex]=new Array(objTemp,objTemp.style.visibility);
objTemp.style.visibility="hidden";
}
}
}catch(err){
}
}function cal_ShowElement(){
var i;
for(i=0;i<HideElementTemp.length; i++){
var objTemp = HideElementTemp[i][0];
if(!objTemp||!objTemp.offsetParent)
continue;
objTemp.style.visibility=HideElementTemp[i][1];
}
HideElementTemp=new Array();
}function cal_GetOffsetLeft(src){
var set=0;
if(src && src.name!="divMain"){
if (src.offsetParent){
set+=src.offsetLeft+cal_GetOffsetLeft(src.offsetParent);
}
if(src.tagName.toUpperCase()!="BODY"){
var x=parseInt(src.scrollLeft,10);
if(!isNaN(x))
set-=x;
}
}
return set;
}function cal_GetOffsetTop(src){
var set=0;
if(src && src.name!="divMain"){
if (src.offsetParent){
set+=src.offsetTop+cal_GetOffsetTop(src.offsetParent);
}
if(src.tagName.toUpperCase()!="BODY"){
var y=parseInt(src.scrollTop,10);
if(!isNaN(y))
set-=y;
}
}
return set;
}
var HideElementTemp = new Array();
//点击菜单时,调用此的函数,菜单对象
function cal_hideElementAll(obj){
cal_HideElement("IMG",obj);
cal_HideElement("SELECT",obj);
cal_HideElement("OBJECT",obj);
cal_HideElement("IFRAME",obj);
}
function cal_HideElement(strElementTagName,obj){
try{
var showDivElement = obj;
var calendarDiv = obj);
var intDivLeft = cal_GetOffsetLeft(showDivElement);
var intDivTop = cal_GetOffsetTop(showDivElement);//+showDivElement.offsetHeight;
for(i=0;i<window.document.all.tags(strElementTagName).length; i++){
var objTemp = window.document.all.tags(strElementTagName)[i];
if(!objTemp||!objTemp.offsetParent||objTemp==goYearSelect||objTemp==goMonthSelect)
continue;
var intObjLeft=cal_GetOffsetLeft(objTemp);
var intObjTop=cal_GetOffsetTop(objTemp);
if(((intObjLeft+objTemp.clientWidth)>intDivLeft)&&
(intObjLeft<intDivLeft+calendarDiv.style.posWidth)&&
(intObjTop+objTemp.clientHeight>intDivTop)&&
(intObjTop<intDivTop+calendarDiv.style.posHeight)){
var intTempIndex=HideElementTemp.length;//已经有的长度
//save elementTagName is stutas
HideElementTemp[intTempIndex]=new Array(objTemp,objTemp.style.visibility);
objTemp.style.visibility="hidden";
}
}
}catch(err){
}
}function cal_ShowElement(){
var i;
for(i=0;i<HideElementTemp.length; i++){
var objTemp = HideElementTemp[i][0];
if(!objTemp||!objTemp.offsetParent)
continue;
objTemp.style.visibility=HideElementTemp[i][1];
}
HideElementTemp=new Array();
}function cal_GetOffsetLeft(src){
var set=0;
if(src && src.name!="divMain"){
if (src.offsetParent){
set+=src.offsetLeft+cal_GetOffsetLeft(src.offsetParent);
}
if(src.tagName.toUpperCase()!="BODY"){
var x=parseInt(src.scrollLeft,10);
if(!isNaN(x))
set-=x;
}
}
return set;
}function cal_GetOffsetTop(src){
var set=0;
if(src && src.name!="divMain"){
if (src.offsetParent){
set+=src.offsetTop+cal_GetOffsetTop(src.offsetParent);
}
if(src.tagName.toUpperCase()!="BODY"){
var y=parseInt(src.scrollTop,10);
if(!isNaN(y))
set-=y;
}
}
return set;
}
解决方案 »
- 100分求助如何调用另一页面中的方法
- 下面的功能代码怎么写啊
- VS2005 预编译发布问题
- 诚聘ASP.NET开发高手
- 按时间查询:如2004年5月6日,我想查2004年5月6日以后的数据,怎么样写sql语句?
- 如何把一个arraylist绑定到一个datagrid上,并设成超连接?
- 高分求教,建一个方案,然后建立多个项目(一个项目做一个模块),可否?
- IE6 Internet Explorer 无法下载excel
- 为什么会这样啊!!关于在datagrid中进行数据操作的问题,急切盼望你的答复!!
- 急!XP系统盘突然多了一个隐藏的系统文件hiberfil.sys有383M(100分,来者有分!)
- 一个dropdownlist的问题啊
- 请问,在DBGrid里面链接列如何绑定两个字段以上?
就能解决问题了。
不好意思,我对JAVASCRIPT太菜了,请教如何据我上面的源码,来调用您列出的函数,再次请教!
我试了一下你所说的方法,可是放在其中的菜单无法跳出Iframe的范围显示,:(
何为动态隐藏下拉框,可否详细点?