IE6中的奇怪布局问题

时间:2010-09-11 03:45:38

标签: jquery internet-explorer-6 overlay jquery-tools

alt text

网址:http://www.hkpete.com/test.html

jQuery 1.42
jQuery Tools 1.2.3 overlay

IE7也有这个问题(在ietester上测试)

我无法找到问题所在。

非常感谢。

<div id="dialog-content">
    <!--Login -->
    <div id="login" class="panel" style="display:none">
    Login..................
    </div>
    <!--Register -->
    <div id="register" class="panel" style="display:none">
    Register..................
    </div>
</div>

<!--Links-->
<a href="javascript:;" onclick="showDialog('#login','member');">Login</a>
<a href="javascript:;" onclick="showDialog('#register','member');">Register</a>

<script type="text/javascript">
var ol;
var dialog=null;
function showDialog(panel,action){
      var each=each ? each : 0;
     function overlay(){
            if(panel){
                $("#dialog div.panel").hide();
                //show panel login,register,lostpw
                $(panel).show();
            }
            if(ol !== undefined && ol.isOpened()) {

                    $("#dialog").css("top", ( $(window).height() - $("#dialog").height() ) / 2+$(window).scrollTop() + "px"); 
                    $("#dialog").css("left", ( $(window).width() - $("#dialog").width() ) / 2+$(window).scrollLeft() + "px");
            }

            //Overlay load          
            ol=$("#dialog").overlay({top:'center', left:'center', closeOnClick:false, api:true }).load();

            $("#dialog .close").click(function(){
               ol.close();
            }); 
     }


    overlay();
    //cur action
    dialog=action;

return false;
}
</script>

2 个答案:

答案 0 :(得分:1)

我想我知道这个错误是什么:http://www.positioniseverything.net/explorer/ienondisappearcontentbugPIE/index.htm

列出的变通办法是:

  

解决方法一个人可能'释放   拼写'有多种方式:

     
      
  1. 暂时将内容的显示属性切换为   '阻止'并回到'无'。
  2.   
  3. 暂时切换内容的位置属性   '相对'到'绝对'和后退,或   反之亦然。
  4.   
  5. 暂时将内容的可见性属性切换为   '隐藏'和回来。 (但这只是   如果内容是有效的   绝对定位!精彩   IE的世界......)
  6.   

去看看那里了解更多信息。

答案 1 :(得分:0)

谢谢,易江。 错误演示http://www.justarrangingbits.org/demo/2/

 //fix the bug
 if(panel){ 
           $("#dialog .panel").css({"display":"none","visibility":"hidden"});
           $(panel).css({"display":"block","visibility":"visible"});
 }