2012-04-05 60 views
0
var wdt = document.body.offsetWidth/2.6 

var hgt = document.body.offsetHeight/4 

$("#element").offset({left:wdt, top:hgt}) 

什么,我试图做的是位置的图像(#element)相对于body..ie到中心相对于窗口......针对不同的浏览器/窗口大小/屏幕....不管任何屏幕。定位元素使用jQuery WRT窗口

这是有效的..还是有更多..?

+0

关于你的变量名,你应该让他们相当冗长; 'wdt'对除你以外的其他开发者没有任何意义,而'宽度'虽然只有更少的字符,但是更可读。 – 2012-04-05 18:09:26

+0

同意。这是有道理的.. :) – Vinay 2012-04-05 18:24:30

回答

1
$("#element").css({left:50%, top:50%}); 

​​

应该这样做。或者更好的是,在你的CSS文件:

#element { 
    left:50%; 
    top:50%; 
} 

请注意,这将根据左上角放置你的元素,所以它不会出现在正中央。为了说明这一点,你可以这样做(保持上面的CSS):

$("#element").offset({ 
    left:-$(this).css("width")/2, 
    top:-$(this).css("height")/2 
}); 
+0

这不能正确定位元素,因为元素大小没有考虑到 – Starx 2012-04-05 18:03:42

+0

我注意到,我正在编辑来解释它。 – 2012-04-05 18:04:47

+0

The image is Spinner Loading ...灯箱的图像为150x80尺寸... – Vinay 2012-04-05 18:23:21

0

使用jQuery

$("img").css({ 
    top: ($(window).height()-$("img").height())/2, 
    margin: '0 auto' 
}); 
+0

不要忘了他也想要在中锋的顶端。或者,确切地说,下降了25%。 – 2012-04-05 18:05:45

+0

@ElliotBonneville,更新如何? – Starx 2012-04-05 23:16:48

+0

不知道你在说什么 - 我*更新了我的答案。 – 2012-04-06 01:22:08