javascript - 在 IE6 中呈现之前元素高度未知;怎么解决?

标签 javascript jquery internet-explorer-6 lightbox

我创建了一个灯箱脚本。一个 javascript 问题仍然存在,这让我发疯。

来源可在http://github.com/Wolfr/Wolf-lightbox 找到。

在IE6中,点击图片时,第一次点击模态框时,模态框位置错误。如果您关闭它并再次单击它,模态框就会正确定位。

我认为这是因为 IE6 还不知道插入图像的尺寸。例如。第一次记录 modalHeight 时,它可能是 51,下一次是 500(模态已经“长大”,因为现在里面有图像”)。

有人有什么想法吗?卡在这里!

 function positionBox() {

  // initialize object references
  var oElement = $('.modal');
  var oWindow = $(window);

  // calculate offset
  var offsetLeft = parseInt((oWindow.width() - oElement.width()) / 2);
  var offsetTop = parseInt((oWindow.height() - oElement.height()) / 2);

  var modalWidth = parseInt(oElement.width());
  var modalHeight = parseInt(oElement.height());

  oElement.css('left', offsetLeft)
    .css('top', offsetTop)
    .css('width', modalWidth)
    .css('height', modalHeight)
    .css('position', 'fixed');

  // IE6 should use position: absolute; since fixed is not supported
  if($.browser.msie && $.browser.version =='6.0') {
   oElement.css('position', 'absolute')
           .css('top', offsetTop + oWindow.scrollTop());
  }

 }

最佳答案

您可以尝试创建您想要在屏幕外调整大小的元素(即。position:absolute; left:-10000px),进行偏移计算,然后将其移回屏幕。

关于javascript - 在 IE6 中呈现之前元素高度未知;怎么解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3997230/

相关文章:

javascript - If 中变量的正则表达式(不区分大小写) - JS/Angular

javascript - JSON 数组 - 删除第一个元素

javascript - 即使在使用 javascript 重新加载后也保留滚动条位置

javascript - ie6如何使用IE8.js?

html - IE CSS 显示问题

javascript - 使用 angularJs 时 Django 表单实例不显示默认值

javascript - jQuery/数据表 : including many differents search filters types and fields in a basic DataTable

JavaScript、Ajax 和 JSON : weird "xml processing" error when parsing response

jquery - 动态加载内容时传单弹出窗口未对齐

browser - 把我从 IE6 中拯救出来