Jquery IE'有什么问题吗;左上角是什么?

Jquery IE'有什么问题吗;左上角是什么?,jquery,css,internet-explorer,Jquery,Css,Internet Explorer,下面的jQuery代码对我来说在Safari、Opera、FF2和FF3上运行得很好。它将一个忙DIV(带有一个动画的忙GIF)放置在我的网页上的表单元素的顶部。问题是在IE6和IE7中,它正确地获得了宽度和高度,但似乎没有正确地获得顶部和左侧。有什么问题吗 var nH = $('#' + sForm).attr('offsetHeight'); var nW = $('#' + sForm).attr('offsetWidth'); var nT = $('#' + sForm).attr(

下面的jQuery代码对我来说在Safari、Opera、FF2和FF3上运行得很好。它将一个忙DIV(带有一个动画的忙GIF)放置在我的网页上的表单元素的顶部。问题是在IE6和IE7中,它正确地获得了宽度和高度,但似乎没有正确地获得顶部和左侧。有什么问题吗

var nH = $('#' + sForm).attr('offsetHeight');
var nW = $('#' + sForm).attr('offsetWidth');
var nT = $('#' + sForm).attr('offsetTop');
var nL = $('#' + sForm).attr('offsetLeft');

$('#busy')
    .css('position','absolute')
    .css('height', nH + 'px')
    .css('width', nW + 'px')
    .css('top', nT + 'px')
    .css('left', nL + 'px')
    .show();
请注意,在我的页面上有多个表单元素。(GIF之所以繁忙,是因为我在提交表单时正在后台发布AJAX帖子。)


注意:我还尝试了jQuery维度插件1.2的顶部和左侧的
.position()
值,这很有帮助,但似乎随着我在页面中的下移,顶部的
值变得越来越小。

我让它与jQuery维度插件1.2的顶部和左侧的.position()值一起工作。(它返回一个数组,您可以在其中获取顶部和左侧数组值。)解决方法是,我必须为IE6设置陷阱,只需为顶部减去一些固定数字(在我的例子中为12px),然后在高度上添加相同的数字。在IE7上,我也可以做同样的事情,但由于某种原因,我不得不在头200像素或更少的像素上做不同的顶部和高度计算。您的情况可能会有所不同,具体取决于您以前的CSS、reset.CSS等。

是否确实将元素设置为display:block?您还可以通过如下方式传递散列来避免多次调用css函数:

$('#busy')
    .css({'position':'absolute',
          'height': nH + 'px',
          'width', nW + 'px',
          'top', nT + 'px',
          'left', nL + 'px'})
    .show();
目前,jQuery(最新的公开发行版)将维度作为核心功能

尝试使用$(element).offset()(它返回一个具有“left”和“top”属性的对象)。
我经常使用它,对于许多浏览器(ie6/7、opera、safari、chrome、ff2/3)来说都是完美的。

谢谢你的提示。我没有想到演出的热播,我应该想到的。你说得对。谢谢你的提示。看来我可以停止使用jQuery维度插件了。我会试试看offset是否能帮我解决这个问题。可能还有一件事可以加快网页速度,并请YSlow。