我创建了一个灯箱脚本。一个 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/