【发布时间】:2012-04-16 12:33:15
【问题描述】:
我打算创建一个具有固定定位的自定义警报框。它在 chrome 中运行良好,但我无法在 Firefox 中获得正确的动态位置。
我将模态容器设置为等于文档的大小
$('#modalContainer').height($.getDocHeight());
然后#alertBox div 位于 modalContainer 中并具有 position:fixed 样式。
我正在使用 jquery 偏移函数来设置 #alertBox 的顶部和左侧值,如下所示:
var off_top=$(window).height()/3-$('#alertBox').height()/3;
var off_top=100;
var off_left=$(window).width()/2- $('#alertBox').width()/2;
$('#alertBox').offset({top:off_top,left:off_left});
在 chrome 中,顶部值设置为 100px 并显示在屏幕上。在 Firefox 中,我得到了一个令人讨厌的大数字,比如 -1084px。
当我将 .offset() 值和 position() 值都输出到 console.log 时,它们在 chrome 中是相同的。然而,在 Firefox 中,虽然偏移值输出的正是我设置的值,但 .position() 函数输出了令人讨厌的大数字。
这是已知的浏览器不一致吗?我需要以不同的方式解决这个问题吗?
【问题讨论】:
-
如果是
fixed定位,为什么不使用csstop和left40-50%左右使框居中。 jsfiddle.net/skram/XWN9G
标签: jquery css firefox dom css-position