页面有一个《div》,根据一个button的click事件,显示或者不显示。
下面有一个table,其中一个《td》里,放了一个select控件,为了可编辑《option》选型,又放了一个空的iframe在select控件上面,目的是在ie6环境下,可以挡住select控件的文字部分,下拉钮还是露出来的。如果用position=relative,这个《td》height就变得很高,而且不能控制。所以改用absolute,这样当整个页面resize时,我必须重新计算高度和宽度,然后定位iframe,让他仍然覆盖在select上面。ok,一切正常。但,当我click 那个button,让table前面的《div》显示时(用的display=inline),再用同样的函数定位iframe的top时,结果不起作用。用ie developer tools发现,iframe有两个top值了,一个是top=1000px(原值),一个是top=1080(新值),结果top=1000px起作用,所以iframe位置不动,而top=1080不起作用,不能实现我希望的效果。
请教大虾们,遇到过吗?不吝赐教!谢谢!!

解决方案 »

  1.   

    top,left,width之类的在Firefox下需要把单位加上...
      

  2.   

    也就是说iframe的offsetTop的值没变。
    我的环境是ie6。 
    谢谢回复。
      

  3.   

    得到textbox的参考点,calculateSumOffset()返回绝对位置的offsetTop值。       
    sourceTop=calculateSumOffset(document.all("S7_DoseFrequency"+i),"offsetTop");
    得到textbox的参考点,calculateSumOffset()返回绝对位置的offsetLeft值。       
    sourceLeft=calculateSumOffset(document.all("S7_DoseFrequency"+i),"offsetLeft");
    得到iframe控件            
    obj=document.all("iframeS7_DoseFrequency"+i);
    重新定位Top值,下面3个参数都不工作!
    obj.style.Top=sourceTop+"px";
    obj.Top=sourceTop+"px";
    obj.style.marginTop=sourceTop+"px";obj.style.left=sourceLeft;
      

  4.   

    奇怪的是在body的resize事件里,代码工作的很好啊
      

  5.   

    obj.style.Top=sourceTop+"px"; obj.style.top 不要大写
      

  6.   

      sourcetop本身是一个集合了.有见过一个集合加个字符串能得到一个值的吗?
    还是老老实实的弄一个FOR(y<i<X)
    {obj.style.Top=sourceTop+"px"; 
     obj.Top=sourceTop+"px"; 
     obj.style.marginTop=sourceTop+"px";
      

  7.   

    obj.style.position='absolute'
    写了吗?
      

  8.   

    14楼,sourceTop是一个值啊,不是集合。
    16楼,已经写了。
    15楼,有关控件已经在一个表格里了。
      

  9.   

    大家听说过这个吗?如果移动《div》位置,必须等所有div都render完后才管用。
      

  10.   

    你是想让iframe覆盖在select的上面,调整页面大小时,select位置变了,iframe位置也跟这变是吗?
      

  11.   

      不好意思 前边没有仔细看你的代码   你的resize事件的是在什么地方添加的 在iframe里是否有添加resize?
      会得到resize前TOP的值 感觉是因为在窗口重新载入前 document.all("S7_DoseFrequency"+i) 这个就起作用了
      不知道你是否理解我的意思 
      就是你的主窗口resize后 iframe里监听到了这个事件 然后相应的触发一个resize
      就是所谓的起泡
      

  12.   

    [u][/fdsfdsfdsfdfdsfdsfdsfdfdfdsfsdfdsfu]